| pyacc(1) | Pascal parser generator | pyacc(1) |
نام (NAME)
pyacc - مولد تجزیهکننده و کامپایلر کامپایلر Yacc برای زبان پاسکال
خلاصه دستور (SYNOPSIS)
yacc [گزینهها] yacc-file[.y] [output-file[.pas]]
گزینهها (OPTIONS)
توضیحات (DESCRIPTION)
TP Yacc برنامهای است که امکان آمادهسازی و ایجاد تجزیهکنندهها را بر اساس توصیف زبانهای ورودی توسط گرامرهای شبیه به BNF فراهم میکند. کافی است گرامر زبان مقصد خود را به همراه کدهای توربو پاسکال لازم برای پردازش ساختارهای نحوی مشخص کنید؛ سپس TP Yacc گرامر شما را به کد توربو پاسکال برای زیرروال تجزیهکننده متناظری با نام yyparse ترجمه میکند.
برنامه TP Yacc گرامر منبع موجود در yacc-file (با پسوند پیشفرض .y) را تجزیه کرده و زیرروال تجزیهکننده ساختهشده را در output-file مشخصشده (با پسوند پیشفرض .pas) مینویسد؛ اگر فایلی برای خروجی مشخص نشود، خروجی در همان yacc-file با پسوند جدید .pas ذخیره میشود. اگر در حین کامپایل خطایی رخ دهد، پیامهای خطا در فایل لیست (یعنی yacc-file با پسوند جدید .lst) نوشته میشوند.
زیرروال تجزیهکننده تولیدشده، yyparse، به این صورت اعلان میشود:
function yyparse : Integer;
این زیرروال را میتوان از برنامه اصلی برای اجرای تجزیهکننده فراخوانی کرد. مقدار بازگشتی yyparse نشاندهنده موفقیت یا شکست تجزیهکننده است (مقادیر بازگشتی ممکن: 0 = موفقیت، 1 = خطای نحوی غیرقابلبازیابی یا سرریز پشته تجزیه).
مشابه با TP Lex، الگوی کد برای زیرروال yyparse را میتوان در فایل yyparse.cod یافت. قوانین مربوط به یافتن این فایل مشابه قوانین TP Lex است (به بخش مربوط به `TP Lex' مراجعه کنید).
یونیت کتابخانه TP Yacc (YaccLib) برای برنامههایی که از تجزیهکنندههای تولیدشده با Yacc استفاده میکنند الزامی است؛ از این رو باید عبارت uses مناسب را در برنامه یا یونیت حاوی زیرروال تجزیهکننده قرار دهید. همچنین یونیت YaccLib روالهایی برای کنترل عملکرد تجزیهکننده ارائه میدهد. برای اطلاعات بیشتر به فایل yacclib.pas مراجعه کنید.
اطلاعات بیشتر (MORE INFORMATION)
برای اطلاعات بیشتر، مستندات همراه با TP lex و yacc را ببینید.
نویسنده (AUTHOR)
Albert Graeff (<ag@muwiinfa.geschichte.uni-mainz.de>, <Dr.Graef@t-online.de>)
همچنین ببینید (SEE ALSO)
| 19 Jan 2000 | Free Pascal |