入出力と処理とは? わかりやすく解説

入出力と処理

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/16 05:20 UTC 版)

Yacc」の記事における「入出力と処理」の解説

ユーザ変換仕様Yacc文法ファイルとしてのテキストファイル作っておく。 yaccコマンド yacc [-dlrtv ] [-b prefix] fileName は、fileName与えたYacc文法ファイル(たとえば"wiki_samp1.y")(伝統的に拡張子は.yがつけられることが多かった)から構文規則入力し、それに基づくLALR構文解析器になるC言語ソースプログラム通常"y.tab.c")を出力する。-rオプションコード部分だけ"y.code.c"ファイル独立させるともできる。 このC言語ソースプログラムにはLALR解析テーブルおよびドライバルーチン含まれる。特に、構文解析全体を行う関数にはyyparse()という名前がついている。よってこのプログラムにあらかじめ適宜yyparse()呼び出すmain()関数加えておくなどして(それはYacc文法ファイル中の「追加Cプログラム部」での記述でも可能)、ほしい変換プログラム完成することができる。 -dオプション生成するヘッダファイル"y.tab.h"は、Lexトークン処理を行うときに、Yacc割り当てたトークン値(256~)を正しく使うよう、Lex実行時与える。 -vオプションにより、生成パーサ文法終端記号非終端記号、状態の種類それぞれの判定パターンおよびそのシフト還元等の措置状態遷移先といった解析テーブル情報が、人に分かりやすい形でテキストファイル"y.output"に出力される。(この"y.output"リスト見方分かりにくいピリオド「.」(Yacc種類によっては下線「_」)は現在のカーソル位置であることなどは知らない分からないであろう説明日本語文書では良書「Cコンパイラ設計(yacclex応用)」のほかに見つけにくいが、英語ではいくつかある) -tオプション指定すると、生成パーサ実行されるときに、状態番号スタック状態、読んだトークン、意味値の演算様子変化した状態番号などが、逐一標準エラー出力表示されるのでデバッグに役立つ(コンパイルオプションも関連)。 次にYacc生成し構文解析器ソースプログラム("y.tab.c")をccコマンドgccコマンドなどでコンパイルする。このとき、Lex利用したであればその出力("lex.yy.c")も並べて指定する。これらに対応するライブラリもコンパイルオプションによってリンクさせるコンパイル作成され変換プログラム実行すると、標準入力FILEポインタyyinで変更可能)(yywrap関数複数ファイルの連結が可能)から変換するファイル読み込む。これを字句解析器関数yylex()によってトークンにして構文解析実行される変換結果エラーは、Yaccアクション部や呼ばれる関数書いた理によりそれぞれ出力されるsyntaxエラーなどは通常標準エラー出力に出るが、形式出力先エラー報告関数yyerror()カスタマイズできる。Yaccオリジナルエラーメッセージでは情報貧弱である。開発・運用頭を抱えないようにするためには、特に発生場所ファイル名行番号およびトークン番号などをエラーメッセージ追加するようにyyerror()作っておくことが望ましい。

※この「入出力と処理」の解説は、「Yacc」の解説の一部です。
「入出力と処理」を含む「Yacc」の記事については、「Yacc」の概要を参照ください。

ウィキペディア小見出し辞書の「入出力と処理」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「入出力と処理」の関連用語

入出力と処理のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



入出力と処理のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのYacc (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS