ASDLGEN(1)   ASDLGEN(1)

asdlgen - کامپایلر زبان توصیف نحو انتزاعی (ASDL)

asdlgen COMMAND [ OPTIONS ] FILE ...

که در آن COMMAND یکی از موارد زیر است:

help

اطلاعات مربوط به گزینه‌های موجود را در خروجی استاندارد چاپ می‌کند.

version

نسخهٔ asdlgen را در خروجی استاندارد چاپ می‌کند.

c++ یا cxx

تولید کد C++.

sml

تولید کد SML.

check

بررسی صحت مشخصات ورودی، بدون تولید هیچ خروجی.

دستور asdlgen فایل‌های مشخص‌شده را که باید حاوی اعلانات ماژول و نمای (view) ASDL باشند می‌خواند و کدهای pickling و unpickling را تولید می‌کند.

-n

هیچ فایل خروجی نوشته نمی‌شود. در عوض، فهرست فایل‌هایی که قرار بود نوشته شوند در خروجی استاندارد چاپ می‌شود.

-d DIR, --output-directory=DIR

دایرکتوری خروجی را برای قرار دادن فایل‌های تولیدشده مشخص می‌کند. به طور پیش‌فرض، خروجی در همان دایرکتوری فایل ورودی که از آن تولید شده است قرار می‌گیرد.

--gen=NAMES

اجزای مورد نظر برای تولید را مشخص می‌کند، که در آن NAMES فهرستی از نام‌های جداشده با کاما از موارد زیر است:
•types — تعاریف نوع را بر اساس مشخصات ASDL تولید می‌کند.
•memory — تولید pickler حافظه.
•file — تولید pickler فایل.
•sexp — تولید pickler مبتنی بر S-Expression (فقط برای SML).

--base-include=FILE

نام فایل هدر C++ را که انواع پایه و توابع اولیه ASDL را تعریف می‌کند مشخص می‌کند. مقدار پیش‌فرض asdl/asdl.hxx است.

--cm=FILE

یک فایل CM برای pickler تولید می‌کند؛ این یک کتابخانهٔ CM تعریف خواهد کرد. توجه داشته باشید که اگر مشخصات ASDL شامل ماژول‌های اولیه باشد، این ماژول‌ها در فهرست ساختارهای صادرشده (exported structures) قرار خواهند گرفت، اما فایل‌های مبدأ پشتیبان باید به صورت دستی به فایل CM اضافه شوند.

--mlb=FILE

یک فایل MLB برای pickler تولید می‌کند. توجه داشته باشید که اگر مشخصات ASDL شامل ماژول‌های اولیه باشد، این موارد در فهرست ساختارهای صادرشده قرار خواهند گرفت، اما فایل‌های مبدأ پشتیبان باید به صورت دستی به فایل MLB اضافه شوند.

نسخهٔ اولیهٔ asdlgen توسط Dan Wang به عنوان بخشی از پروژهٔ National Compiler Infrastructure در دانشگاه پرینستون نوشته شد. این نسخه از ابزار توسط John Reppy پیاده‌سازی شده است.

ASDL Reference Manual (در مستندات SML/NJ گنجانده شده است).

Copyright © 2020 The Fellowship of SML/NJ

این یک نرم‌افزار آزاد است؛ شرایط تکثیر را در سورس‌کد مشاهده کنید. هیچ تضمینی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص.

2025-11-04 SML/NJ