'\" t .\" Title: yaz-asncomp .\" Author: Index Data .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 05/20/2026 .\" Manual: Commands .\" Source: YAZ 5.37.3 .\" Language: English .\" .TH "YAZ\-ASNCOMP" "1" "05/20/2026" "YAZ 5.37.3" "Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" yaz-asncomp \- کامپایلر ASN\&.1 برای YAZ .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fByaz\-asncomp\fR\ 'u \fByaz\-asncomp\fR [\fB\-v\fR] [\fB\-c\ \fR\fB\fIcfile\fR\fR] [\fB\-h\ \fR\fB\fIhfile\fR\fR] [\fB\-p\ \fR\fB\fIpfile\fR\fR] [\fB\-d\ \fR\fB\fIconfig\fR\fR] [\fB\-I\ \fR\fB\fIincludeout\fR\fR] [\fB\-i\ \fR\fB\fIincludedir\fR\fR] [\fB\-m\ \fR\fB\fImodule\fR\fR] [filename] .SH "توضیحات (DESCRIPTION)" .PP \fByaz\-asncomp\fR یک کامپایلر ASN\&.1 است که مشخصات ASN\&.1 را در \fIfilename\fR خوانده و تعاریف C/C++ و رمزگذارها/رمزگشاهای BER را برای آن تولید می‌کند\&. .PP کد C/C++ و فایل‌های سرآیند (header) تولیدشده از ماژول ODR مربوط به YAZ استفاده می‌کنند که کتابخانه‌ای برای رمزگذاری/رمزگشایی/چاپ بسته‌های BER است\&. \fByaz\-asncomp\fR به شما امکان می‌دهد نام فایل مبدأ حاصل را از طریق گزینه‌ها مشخص کنید\&. همچنین می‌توانید یک فایل DEFINITIONS مشخص کنید که در صورت متشکل بودن مشخصات ASN\&.1 از چندین ماژول، خروجی سفارشی‌شده‌ای را برای چندین فایل خروجی فراهم می‌سازد\&. .PP این ابزار با Tcl نوشته شده است\&. هر نسخه‌ای از Tcl باید کار کند\&. .SH "گزینه‌ها (OPTIONS)" .PP \-v .RS 4 باعث می‌شود کامپایلر ASN\&.1 گزارش مشروح‌تری از مراحل مختلف عملیات چاپ کند\&. .RE .PP \-c \fIcfile\fR .RS 4 نام فایل C/C++ شامل رمزگذارها/رمزگشاها را مشخص می‌کند\&. .RE .PP \-h \fIhfile\fR .RS 4 نام فایل سرآیند حاوی تعاریف را مشخص می‌کند\&. .RE .PP \-p \fIpfile\fR .RS 4 نام یک فایل سرآیند اختصاصی حاوی تعاریف را مشخص می‌کند\&. به‌طور پیش‌فرض تمام تعاریف در فایل سرآیند عمومی قرار داده می‌شوند (گزینه \-h)\&. .RE .PP \-d \fIdfile\fR .RS 4 نام یک فایل تعاریف را مشخص می‌کند\&. .RE .PP \-I \fIiout\fR .RS 4 بخش اول دایرکتوری را که فایل‌های سرآیند در آن نوشته می‌شوند مشخص می‌کند\&. .RE .PP \-i \fIidir\fR .RS 4 بخش دوم دایرکتوری را که فایل‌های سرآیند در آن نوشته می‌شوند مشخص می‌کند\&. .RE .PP \-m \fImodule\fR .RS 4 مشخص می‌کند که کامپایلر ASN\&.1 فقط باید ماژول داده‌شده را پردازش کند\&. اگر این گزینه مشخص نشود، تمام ماژول‌های موجود در فایل ASN\&.1 پردازش می‌شوند\&. .RE .SH "فایل تعاریف (DEFINITIONS FILE)" .PP فایل تعاریف در واقع یک اسکریپت Tcl است، اما از قواعد سنتی فایل‌های پیکربندی مشابه پوسته پیروی می‌کند؛ بدین معنی که # نشان‌دهنده آغاز یک توضیح است\&. تعاریف خط‌محور هستند\&. فایل‌های تعاریف معمولاً از مجموعه‌ای از انتساب‌های متغیر به شکل زیر تشکیل شده‌اند: .PP set \fIname\fR \fIvalue\fR .PP متغیرهای دردسترس عبارتند از: .PP default\-prefix .RS 4 پیشوند نام‌ها را در خروجی تولیدشده تنظیم می‌کند\&. این مقدار به ترتیب شامل سه بخش است: پیشوند تابع C، پیشوند typedef در C و پیشوند پیش‌پردازنده\&. .RE .PP prefix(\fImodule\fR) .RS 4 مقادیر پیشوند را برای ماژول \fImodule\fR تنظیم می‌کند\&. این مقدار ساختاری مشابه با default\-prefix دارد\&. .RE .PP filename(\fImodule\fR) .RS 4 نام فایل را برای فایل C/سرآیند مربوط به ماژول \fImodule\fR مشخص می‌کند\&. .RE .PP init(\fImodule\fR,h) .RS 4 قطعه‌کدی که باید در بخش ابتدایی سرآیند عمومی برای ماژول \fImodule\fR قرار گیرد\&. .RE .PP body(\fImodule\fR,h) .RS 4 قطعه‌کدی که باید در بخش انتهایی سرآیند عمومی برای ماژول \fImodule\fR قرار گیرد (دنباله یا trailer)\&. .RE .PP init(\fImodule\fR,c) .RS 4 قطعه‌کدی که باید در بخش ابتدایی رمزگذار/رمزگشای مبتنی بر C برای ماژول \fImodule\fR قرار گیرد\&. .RE .PP body(\fImodule\fR,c) .RS 4 قطعه‌کدی که باید در بخش انتهایی رمزگذار/رمزگشای مبتنی بر C برای ماژول \fImodule\fR قرار گیرد (دنباله یا trailer)\&. .RE .PP map(\fImodule\fR,\fIname\fR) .RS 4 نوع ASN\&.1 با نام \fIname\fR در ماژول \fImodule\fR را به یک مقدار نگاشت می‌کند\&. .RE .PP membermap(\fImodule\fR,\fIname\fR,\fImember\fR) .RS 4 عضو \fImember\fR را در SEQUENCE/CHOICE مربوط به \fIname\fR در ماژول \fImodule\fR به یک مقدار نگاشت می‌کند\&. این مقدار شامل یک یا دو بخش است\&. بخش اول نام قسمت پیش‌پردازنده C است\&. بخش دوم نام عضو حاصل در C است\&. اگر بخش دوم حذف شود، مقدار داده‌شده (تک‌بخشی) هم بخش پیش‌پردازنده و هم struct,union در C خواهد بود\&. .RE .PP unionmap(\fImodule\fR,\fIname\fR,\fImember\fR) .RS 4 عضو \fImember\fR را در CHOICE مربوط به \fIname\fR در ماژول \fImodule\fR به یک مقدار نگاشت می‌کند\&. این مقدار شامل دو یا سه بخش است\&. بخش اول نام مقدار عدد صحیح در union است که به‌عنوان انتخاب‌گر (selector) برای خود union استفاده می‌شود\&. بخش دوم نام union است\&. بخش سوم نام عضو CHOICE را بازنویسی می‌کند؛ در صورت عدم ذکر، از نام عضو استفاده می‌شود\&. .RE .SH "فایل‌ها (FILES)" .PP /usr/share/yaz/z39\&.50/z\&.tcl .PP /usr/share/yaz/z39\&.50/*\&.asn .SH "همچنین ببینید (SEE ALSO)" .PP \fByaz\fR(7) .PP بخش \(lqThe ODR Module\(rq در دفترچه راهنمای YAZ\&. .SH "نویسندگان (AUTHORS)" .PP \fBIndex Data\fR