Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ yacc(1) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lex(1)

YACC(1)  —  NEWS-OS Programmer’s Manual

名称

yacc − コンパイラ−コンパイラ

形式

yacc [ −vd ] grammar

解説

yacc は、文脈自由文法を、 LR(1) 構文解析アルゴリズムを実行する 簡潔なオートマトンのための1組のテーブルに変換します。 文法はあいまいであってもかまいません。 あいまいさをなくするために、 指定された優先順位規則が使用されます。

出力ファイル y.tab.c は、プログラム yyparse を作成するために、 Cコンパイラを用いてコンパイルしなければなりません。 このプログラムは、字句解析プログラム yylex 並びに main およびエラー処理ルーチン yyerror と共にロードしなければなりません。 これらのルーチンは、 ユーザが供給しなければなりません。 yacc によって使用可能な字句解析プログラムの作成には、 lex(1) を使用すると便利です。

−v フラグが指定された場合には、 ファイル y.output が作成されます。 このファイルには、 構文解析テーブルの記述と、 文法のあいまいさによる矛盾に関する報告が収められています。

−d フラグが使用された場合には、 yacc が割り当てた「トークンコード」をユーザが宣言した 「トークン名」に割り当てる。 define 文をもつファイル y.tab.h が生成されます。 これによって、 y.tab.c 以外のソースファイルがトークンコードにアクセスすることができます。

関連ファイル

y.output
y.tab.c
y.tab.hトークン名の定義
yacc.tmp, yacc.acts一時的ファイル
/usr/lib/yaccparCプログラムのためのパーサの原型

関連事項

lex(1)
LR Parsing by A. V. Aho and S. C. Johnson, Computing Surveys, June, 1974. 
YACC − Yet Another Compiler Compiler by S. C. Johnson.

診断

reduce-reduce および shift-reduce の矛盾の数が、 標準出力に報告されます。 さらに詳しい報告は、 y.output ファイルにあります。 同様に、 いくつかの規則が開始シンボルから到達できない場合には、 それも報告されます。

バグ

ファイル名が固定されているので、 ある 1つのディレクトリ内では同時に 1つの yacc プロセスしか アクティブになることができません。

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026