Manpages

名 称

yaccLALR(1) パ ー サ ジ ェ ネ レ ー タ 書 式
yacc
[−dlrtv] [−b prefix] filename 解 説
yacc
は 、 filename の フ ァ イ ル か ら 文 法 仕 様 を 読 み 取 り 、 そ の 仕 様 か ら LR(1) パ ー サ を 生 成 し ま す 。 パ ー サ は 、 LALR(1) 解 析 テ ー ブ ル と 、 C 言 語 で 書 か れ た ド ラ イ バ ル ー チ ン の セ ッ ト か ら 構 成 さ れ て い ま す 。 yacc は 通 常 、 y.tab.c と い う フ ァ イ ル に 解 析 テ ー ブ ル と ド ラ イ バ ル ー チ ン を 書 き 込 み ま す 。 以 下 の オ プ シ ョ ン が 提 供 さ れ て い ま す :

−b prefix

−b オ プ シ ョ ン は 、 出 力 フ ァ イ ル 名 の 先 頭 に 加 え る プ リ フ ィ ッ ク ス 文 字 列 を prefix に 変 更 し ま す 。 デ フ ォ ル ト の プ リ フ ィ ッ ク ス は y. で す 。

−d

−d オ プ シ ョ ン は 、 ヘ ッ ダ フ ァ イ ル y.tab.h を 生 成 す る よ う 指 示 し ま す 。

−l も し −l オ プ シ ョ ン が 指 定 さ れ て い な け れ ば 、 yacc は #line デ ィ レ ク テ ィ ブ を 生 成 し た コ ー ド に 挿 入 し ま す 。 #line デ ィ レ ク テ ィ ブ は 、 生 成 さ れ た コ ー ド の 中 の エ ラ ー と ユ ー ザ の オ リ ジ ナ ル コ ー ド と の 関 係 を C コ ン パ イ ラ に 知 ら せ ま す 。 も し −l オ プ シ ョ ン が 指 定 さ れ て い れ ば 、 yacc は #line デ ィ レ ク テ ィ ブ を 挿 入 し ま せ ん 。 ユ ー ザ に よ っ て 指 定 さ れ た #line デ ィ レ ク テ ィ ブ は 保 持 さ れ ま す 。

−r

−r オ プ シ ョ ン を 指 定 す る と 、 yacc は コ ー ド と テ ー ブ ル の フ ァ イ ル を 分 け て 出 力 し ま す 。 コ ー ド フ ァ イ ル 名 は y.code.c と な り 、 テ ー ブ ル フ ァ イ ル 名 は y.tab.c と な り ま す 。

−t

−t オ プ シ ョ ン を 指 定 す る と 、 yacc に よ っ て 生 成 さ れ る プ リ プ ロ セ ッ サ デ ィ レ ク テ ィ ブ を 変 更 し 、 デ バ ッ グ 用 の 文 を コ ン パ イ ル さ れ た コ ー ド の 中 に 埋 め 込 み ま す 。

−v

−v オ プ シ ョ ン を 指 定 す る と 、 生 成 さ れ た パ ー ザ の 詳 細 を 人 間 に 読 め る 形 式 で 、 フ ァ イ ル y.output に 出 力 し ま す 。 環 境 変 数 以 下 の 環 境 変 数 が yacc に よ っ て 参 照 さ れ ま す :

TMPDIR も し 環 境 変 数 TMPDIR が 設 定 さ れ て い れ ば 、 TMPDIR に 設 定 さ れ て い る 文 字 列 は 、 テ ン ポ ラ リ フ ァ イ ル が 生 成 さ れ る デ ィ レ ク ト リ 名 と し て 使 用 さ れ ま す 。 テ ー ブ ル 本 バ ー ジ ョ ン の yacc に よ っ て 生 成 さ れ る テ ー ブ ル の 名 称 は 、 ’’yylhs’’, ’’yylen’’, ’’yydefred’’, ’’yydgoto’’, ’’yysindex’’, ’’yyrindex’’, ’’yygindex’’, ’’yytable’’, そ し て ’’yycheck’’ で す 。 さ ら に 、 追 加 の テ ー ブ ル と し て ’’yyname’’ お よ び ’’yyrule’’ が 、 YYDEBUG が 定 義 さ れ ゼ ロ で な い と き に 用 意 さ れ ま す 。 関 連 フ ァ イ ル
y.code.c
y.tab.c
y.tab.h
y.output
/tmp/yacc.aXXXXXX
/tmp/yacc.tXXXXXX
/tmp/yacc.uXXXXXX
診 断 も し ル ー ル を 切 り 詰 め る こ と が で き な か っ た 場 合 、 ル ー ル 数 が 標 準 出 力 に 書 か れ ま す 。 も し 、 何 ら か の LALR(1) の 衝 突 が あ っ た 場 合 、 衝 突 数 も 標 準 エ ラ ー 出 力 に 書 か れ ま す 。 関 連 項 目

yyfix(1) 規 格
yacc
ユ ー テ ィ リ テ ィ は IEEE Std 1003.2 (’’POSIX.2’’) 準 拠 で す 。