OCAMLYACC(1) General Commands Manual OCAMLYACC(1)

ocamlyacc - مولد تجزیه‌کننده برای OCaml

ocamlyacc [ -b prefix ] [ -q ] [ -v ] [ -version ] [ -vnum ] filename.mly

دستور ocamlyacc(1) یک تجزیه‌کننده (parser) را از مشخصات گرامر مستقل از متن LALR(1) به همراه کنش‌های معنایی، به سبک yacc(1) تولید می‌کند. با فرض اینکه فایل ورودی grammar.mly باشد، اجرای ocamlyacc کد OCaml یک تجزیه‌کننده را در فایل grammar.ml و واسط آن را در فایل grammar.mli تولید می‌کند.

ماژول تولیدشده به ازای هر نقطهٔ ورود (entry point) در گرامر، یک تابع تجزیه تعریف می‌کند. این توابع همنام با نقاط ورود هستند. توابع تجزیه یک تحلیل‌گر لغوی (تابعی از بافرهای لکسر به توکن‌ها) و یک بافر تحلیل‌گر لغوی (lexer buffer) را به‌عنوان آرگومان دریافت کرده و صفت معنایی مربوط به نقطهٔ ورود متناظر را برمی‌گردانند. توابع تحلیل‌گر لغوی معمولاً از یک مشخصات لغوی توسط برنامهٔ ocamllex(1) تولید می‌شوند. بافرهای لکسر یک نوع دادهٔ انتزاعی هستند که در ماژول Lexing از کتابخانهٔ استاندارد پیاده‌سازی شده‌اند. توکن‌ها مقادیری از نوع ملموس token هستند که در فایل واسط grammar.mli تولیدشده توسط ocamlyacc(1) تعریف می‌شوند.

دستور ocamlyacc(1) گزینه‌های زیر را می‌شناسد:

نام‌گذاری فایل‌های خروجی به‌صورت prefix.ml، prefix.mli و prefix.output، به‌جای قاعدهٔ نام‌گذاری پیش‌فرض.
این گزینه هیچ اثری ندارد.
رد کردن گرامرهایی که دارای تداخل (conflict) هستند.
تولید توصیفی از جدول‌های تجزیه و گزارشی از تداخل‌های ناشی از ابهام در گرامر. این توضیحات در فایل grammar.output قرار می‌گیرند.
چاپ نسخه و خروج.
چاپ شماره نسخهٔ کوتاه و خروج.
-
خواندن مشخصات گرامر از ورودی استاندارد. نام‌های پیش‌فرض فایل‌های خروجی stdin.ml و stdin.mli خواهند بود.
-- file
پردازش file به‌عنوان مشخصات گرامر، حتی اگر نام آن با نویسهٔ خط تیره (-) شروع شود. این گزینه باید آخرین گزینه در خط فرمان باشد.

ocamllex(1).
The OCaml user's manual، فصل “Lexer and parser generators”.