این صفحه فرمانی است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
صفحه - مولد تجزیه کننده
خلاصه
با ما ?گزینه های...؟ ?ورودی ?تولید??
_______________________________________________________________________________________________
شرح
برنامه توصیف شده توسط این سند، با ما، در واقع فقط یک مولد تجزیه کننده نیست،
همانطور که از نام آن پیداست، اما یک ابزار عمومی برای اجرای تبدیل های دلخواه در
متن ها
عمومی بودن آن از طریق استفاده از پلاگین ها برای خواندن، تبدیل و نوشتن
داده ها، و مجموعه از پیش تعریف شده افزونه های ارائه شده توسط Tcllib برای تولید است
به خاطر سپردن تجزیه کننده های تبار بازگشتی (معروف به موش بسته تجزیه کننده) از مشخصات گرامری
(تجزیه اصطلاح گرامرها).
با ما بالای بسته نوشته شده است page::pluginmgr، قابلیت های آن را در یک
برنامه مبتنی بر خط فرمان همه دیگران صفحه::* بسته ها پلاگین و/یا هستند
بسته های پشتیبانی برای تولید تجزیه کننده ها تجزیه کننده ها خود بر اساس
بسته دستور زبان::peg, دستور زبان::peg::interpو دستور زبان::mengine.
COMMAND LINE
با ما ?گزینه های...؟ ?ورودی ?تولید??
این فرم کلی برای تماس است با ما. برنامه محتویات را می خواند
فایل ورودی، آنها را تحت کنترل مشخص شده پردازش کنید گزینه های، و سپس
نتیجه را در فایل بنویسید تولید.
If ورودی رشته است - داده های پردازش از آن خوانده می شود stdin به جای یک
فایل. به طور مشابه، نتیجه به آن نوشته خواهد شد stdout به جای فایل اگر تولید
رشته است -. یک خروجی یا مشخصات ورودی از دست رفته باعث می شود که برنامه کاربردی
فرض -.
مشخصات تفصیلی به رسمیت شناخته شده است گزینه های در بخش ارائه شده است
OPTIONS.
مسیر ورودی (که در)
این آرگومان مسیر فایلی را که باید توسط آن پردازش شود را مشخص می کند
برنامه ، یا -. آخرین مقدار باعث می شود که برنامه متن را بخواند
از جانب stdin. در غیر این صورت باید وجود داشته باشد و قابل خواندن باشد. اگر استدلال است
گم - فرض بر این است.
مسیر تولید (که در)
این آرگومان محل نوشتن متن تولید شده را مشخص می کند. می تواند باشد
مسیر یک فایل یا -. آخرین مقدار باعث می شود که برنامه بنویسد
تولید مستند به stdout.
اگر فایل تولید وجود ندارد پس [پرونده dirname $output] باید وجود داشته باشد
و باید یک دایرکتوری قابل نوشتن باشد، زیرا برنامه fileto را ایجاد می کند
نوشتن به.
اگر استدلال گم شده باشد - فرض بر این است.
عمل
... خواندن ... تبدیل ... نوشتن - پلاگین - خط لوله ...
OPTIONS
در این بخش تمام گزینه های موجود برای کاربر برنامه توضیح داده شده است. گزینه ها
همیشه به ترتیب پردازش می شوند. یعنی از هر دو --کمک و - نسخه گزینه مشخص شده اند
برخورد اول دارای اولویت است.
گزینه های ناشناخته قبل از هر یک از گزینه ها مشخص شده است -rd, -wr، یا -tr باعث پردازش خواهد شد
سقط کردن با یک خطا گزینه های ناشناخته ای که بین این گزینه ها یا بعد از آخرین گزینه قرار می گیرند
فرض بر این است که از آنها همیشه یک استدلال واحد می گیرند و با آخرین استدلال مرتبط هستند
گزینه پلاگین پیش روی آنها قرار می گیرد. آنها پس از تمام افزونه های مربوطه بررسی می شوند و
بنابراین گزینه هایی که آنها درک می کنند، شناخته شده است. یعنی چنین گزینه های ناشناخته ای باعث خطا می شوند اگر و
فقط در صورتی که گزینه پلاگینی که با آن مرتبط هستند آنها را درک نکرده باشد و درک نکرده باشد
پس از آن یک گزینه افزونه جایگزین می شود.
گزینههای پیشفرض اگر و تنها در صورتی استفاده میشوند که خط فرمان شامل هیچ گزینهای در نباشد
همه. آنها برنامه را به عنوان یک مولد تجزیه کننده مبتنی بر PEG تنظیم می کنند. لیست دقیق
گزینه ها است
-c میخ
و اکنون گزینه های شناخته شده و استدلال های آنها در صورت وجود:
--کمک
-h
-? وقتی یکی از این گزینهها در خط فرمان یافت میشود، همه آرگومانهای قبلی آمده است
یا بعد از آن نادیده گرفته می شوند. برنامه شرح کوتاهی از آن را چاپ می کند
گزینه های شناسایی و خروج.
- نسخه
-V وقتی یکی از این گزینهها در خط فرمان یافت میشود، همه آرگومانهای قبلی آمده است
یا بعد از آن نادیده گرفته می شوند. برنامه ویرایش خود را چاپ می کند و از آن خارج می شود.
-P این گزینه به برنامه سیگنال می دهد تا بازخورد بصری را در حین خواندن فعال کند
ورودی
-T این گزینه به برنامه سیگنال می دهد تا هنگام خواندن ورودی، آمار جمع آوری کند
و پس از اتمام خواندن، قبل از شروع پردازش، آنها را چاپ کنید.
-D این گزینه به برنامه سیگنال می دهد تا ورود به سیستم را در پایگاه امن فعال کند
اشکال زدایی مشکلات افزونه ها
-r تجزیه کننده
-rd تجزیه کننده
-- خواننده تجزیه کننده
این گزینه ها افزونه ای را که برنامه باید برای خواندن آن استفاده کند مشخص می کند ورودی.
اگر گزینه ها چندین بار استفاده شوند، آخرین مورد استفاده خواهد شد.
-w ژنراتور
-wr ژنراتور
-- نویسنده ژنراتور
این گزینه ها افزونه ای را که برنامه باید برای تولید و استفاده کند مشخص می کند
نوشتن فینال تولید. اگر گزینه ها چندین بار استفاده شوند، آخرین مورد استفاده خواهد شد
استفاده شود
-t روند
-tr روند
--تبدیل روند
این گزینه ها یک افزونه را برای اجرا در ورودی مشخص می کنند. در مقابل خوانندگان و
نویسندگان هر کدام از اراده استفاده می کنند نه جایگزین استفاده های قبلی شود، اما هر افزونه انتخابی را به a اضافه کنید
فهرستی از دگرگونیها، چه در جلو، چه در انتها، به ازای آخرین استفاده از
هر کدام از گزینه ها -p or -a. پیشفرض اولیه اضافه کردن تبدیلهای جدید است.
-a
--پیوست
این گزینه ها به برنامه سیگنال می دهند که همه تبدیل های زیر باید باشد
در پایان لیست تحولات اضافه شده است.
-p
-- آماده کردن
این گزینه ها به برنامه سیگنال می دهند که همه تبدیل های زیر باید باشد
در ابتدای لیست تغییرات اضافه شده است.
-- تنظیم مجدد
این گزینه به برنامه سیگنال می دهد تا لیست تبدیل ها را پاک کند. این هست
برای پاک کردن تبدیل های پیش فرض استفاده شده ضروری است.
-c پرونده
- پیکربندی پرونده
این گزینه باعث می شود که برنامه یک فایل پیکربندی و/یا افزونه بارگیری کند. این
افزونه ای است که در اصل مجموعه ای از گزینه های خط فرمان از پیش تعریف شده را ارائه می دهد.
آنها دقیقاً طوری پردازش می شوند که گویی به جای گزینه مشخص شده اند
و استدلال های آن این بدان معنی است که گزینه های ناشناخته در ابتدای صفحه یافت می شود
فایل پیکربندی با آخرین افزونه مرتبط است، حتی اگر آن افزونه بود
قبل از خود فایل پیکربندی مشخص شده است. برعکس، گزینه های ناشناخته در راه است
بعد از اینکه فایل پیکربندی را می توان با یک افزونه مشخص شده در فایل مرتبط کرد.
اگر آرگومان فایلی باشد که نمی تواند به عنوان یک افزونه بارگیری شود، برنامه این کار را انجام می دهد
فرض کنید محتویات آن فهرستی از گزینه ها و آرگومان های آنهاست که با جدا شده اند
فضا، برگه ها و خطوط جدید. گزینه ها و آرگومان های حاوی فاصله قابل نقل قول هستند
از طریق دو گیومه (") و نقل قول ('). کاراکتر نقل قول را می توان در داخل مشخص کرد
در یک رشته نقل قول با دو برابر کردن آن. خطوط جدید در یک رشته نقل قول همانطور که هست پذیرفته می شوند.
پلاگین
با ما از چهار نوع پلاگین مختلف استفاده می کند که عبارتند از: خواننده ها، نویسندگان،
تبدیل ها و پیکربندی ها در اینجا ما فقط یک مقدمه اولیه در مورد چگونگی انجام آن ارائه می دهیم
از آنها استفاده کنید با ما. API های دقیق ارائه شده و مورد انتظار از افزونه ها را می توان یافت
در مستندات برای page::pluginmgr، برای کسانی که می خواهند افزونه های خود را بنویسند.
پلاگین ها به عنوان آرگومان های گزینه ها مشخص می شوند -r, -w, -t, -c، و معادل آنها
فرم های طولانی تر بخش را ببینید OPTIONS برای مرجع است.
هر یک از این آرگومان ها ابتدا به عنوان نام یک فایل در نظر گرفته می شود و این فایل به عنوان بارگذاری می شود
افزونه اما اگر فایلی با آن نام وجود نداشته باشد، به آن ترجمه می شود
نام یک بسته و سپس این بسته بارگیری می شود. برای هر نوع پلاگین
مدیریت بسته نه تنها مسیرهای معمولی را جستجو می کند، بلکه مجموعه ای از برنامه ها و نوع را جستجو می کند.
مسیرهای خاص نیز لطفا بخش را ببینید پلاگین مکان برای فهرستی از تمام مسیرها
و منابع آنها
-c نام
پیکربندی. نام بسته برای افزونه نام is
"page::config::نام".
ما یک پلاگین از پیش تعریف شده داریم:
میخ این برنامه را به عنوان یک تولید کننده تجزیه کننده تنظیم می کند که تجزیه را می پذیرد
گرامرهای بیان و نوشتن تجزیه کننده packrat در Tcl. واقعی
آرگومان هایی که مشخص می کند عبارتند از:
-- تنظیم مجدد
--پیوست
-- میخ خواننده
--تغییر دسترسی
--تغییر استفاده
--من را بنویس
-r نام
خوانندگان نام بسته برای افزونه نام است "page::reader::نام".
ما پنج پلاگین از پیش تعریف شده داریم:
میخ ورودی را به عنوان گرامر عبارت تجزیه ای تفسیر می کند (PEG) و a را ایجاد می کند
نمایش درخت برای آن هم نحو PEG ها و هم ساختار
نمایش درخت در manpages خود توضیح داده شده است.
hb ورودی را به عنوان کد Tcl که توسط افزونه نویسنده ایجاد شده است تفسیر می کند hb و
نمایش درختی خود را ایجاد می کند.
دیدن ورودی را به عنوان سریال سازی یک PEG، همانطور که توسط
افزونه نویسنده دیدن، با استفاده از بسته دستور زبان::peg.
لیمو ورودی را همانطور که توسط ریچارد فهمیده است به عنوان یک ویژگی دستور زبان تفسیر می کند
هیپ لیمو مولد تجزیه کننده و یک نمایش درختی برای آن تولید می کند.
هم نحو ورودی و هم ساختار نمایش درختی هستند
در manpage های خودشان توضیح داده شده است.
درختکار
ورودی را به صورت سریال سازی a تعبیر می کند struct::tree. تایید شده است
به این ترتیب، اما هیچ چیز دیگری. این است نه فرض می شود که نمایش درخت باشد
از یک دستور زبان
-w نام
نویسندگان نام بسته برای افزونه نام است "page::writer::نام".
ما هشت پلاگین از پیش تعریف شده داریم:
هویت
به سادگی داده های دریافتی را همانطور که هست بدون ایجاد تغییر می نویسد. این
برای بررسی نتیجه خام یک خواننده یا تبدیل خوب است.
تهی چیزی تولید نمی کند و ساختار داده های ورودی را نادیده می گیرد.
درخت فرض می کنیم که ساختار داده های ورودی a است struct::tree و ایجاد می کند
نمایش متنی تورفتگی تمام گره ها، روابط والدین آنها،
و اطلاعات ویژگی آنها
میخ فرض می کنیم که ساختار داده ورودی یک نمایش درختی از a است PEG
یا دستور زبان دیگر و آن را به صورت PEG می نویسد. نتیجه خوب است
قالب بندی شده و تا حدی ساده شده (رشته ها به عنوان دنباله کاراکترها). آ
در اصل چاپگر زیبا است، اما می توان از آن برای به دست آوردن یک متعارف نیز استفاده کرد
نمایش گرامر ورودی
tpc فرض می کنیم که ساختار داده ورودی یک نمایش درختی از a است PEG
یا دستور زبان دیگر و کد Tcl را می نویسد که بسته ای را تعریف می کند که
تعریف دستور زبان::peg وقتی که در آن بارگذاری می شود، شی حاوی دستور زبان است
یک مترجم
hb این مانند افزونه نویسنده است tpc، اما فقط عباراتی را می نویسد که
بیان آمار و قواعد دستور زبان را تعریف کنید. کد ایجاد نتیجه a
بسته حذف شده است
دیدن فرض می کنیم که ساختار داده ورودی یک نمایش درختی از a است PEG
یا دستور زبان دیگر، آن را در داخل به الف تبدیل می کند دستور زبان::peg هدف
و سریال سازی آن را می نویسد.
me فرض می کنیم که ساختار داده ورودی یک نمایش درختی از a است PEG
یا دستور زبان دیگر و کد Tcl را می نویسد که بسته ای را تعریف می کند که
یک تجزیه کننده نزول بازگشتی ذخیره سازی را بر اساس موتور مسابقه پیاده سازی می کند
(ME) ارائه شده توسط بسته دستور زبان::mengine.
-t نام
مبدل ها. نام بسته برای افزونه نام is
"page::transform::نام".
ما دو پلاگین از پیش تعریف شده داریم:
رسیدن به فرض می کنیم که ساختار داده ورودی یک نمایش درختی از a است PEG
یا دستور زبان دیگر تعیین می کند کدام نمادها و قوانین غیر پایانی
از start-symbol/express در دسترس هستند. همه نمادهای غیر پایانی که
نرسیده بودند حذف می شوند.
استفاده کنید فرض می کنیم که ساختار داده ورودی یک نمایش درختی از a است PEG
یا دستور زبان دیگر تعیین می کند کدام نمادها و قوانین غیر پایانی
قادر به تولید الف هستند محدود، فانی دنباله ای از نمادهای پایانی (به این معنا
برای یک گرامر آزاد زمینه). همه نمادهای غیر پایانی که در نظر گرفته نشدند
مفید در این معنا حذف می شوند.
پلاگین مکان
مسیرهای خاص برنامه جستجو شده توسط با ما یا هستند، یا می آیند از:
[1] دایرکتوری "~/.page/plugin"
[2] متغیر محیطی PAGE_PLUGINS
[3] ورودی رجیستری HKEY_LOCAL_MACHINE\SOFTWARE\PAGE\PLUGINS
[4] ورودی رجیستری HKEY_CURRENT_USER\SOFTWARE\PAGE\PLUGINS
مسیرهای نوع خاص جستجو شده توسط با ما یا هستند، یا می آیند از:
[1] دایرکتوری "~/.page/plugin/"
[2] متغیر محیطی PAGE_ _پلاگین ها
[3] ورودی رجیستری HKEY_LOCAL_MACHINE\SOFTWARE\PAGE\ \ پلاگین ها
[4] ورودی رجیستری HKEY_CURRENT_USER\SOFTWARE\PAGE\ \ پلاگین ها
جایی که جانشین همیشه یکی از مقادیر زیر است که به درستی با حروف بزرگ نوشته شده است.
[1] خواننده
[2] نویسنده
[3] تبدیل
[4] پیکربندی
ورودی های رجیستری مختص پلتفرم ویندوز(tm) هستند، همه پلتفرم های دیگر این کار را خواهند کرد
آنها را نادیده بگیر.
محتویات متغیرهای محیطی و ورودی های رجیستری به عنوان یک لیست تفسیر می شوند
از مسیرها، با عناصر جدا شده توسط دو نقطه (یونیکس) یا نقطه ویرگول (ویندوز).
با استفاده از خدمات onworks.net از صفحه آنلاین استفاده کنید