プログラミング言語SML#解説 4.0.0版
30 構文解析器生成ツール smlyaccとsmllex

30.1 生成されるソースファイル

SML#システムをインストースするとコマンドsmlyaccsmllexが同時にインストールされる. これらはSML#コンパイラを生成するためにも使用される. これらコマンドは,以下のファイルを生成する.

コマンド 入力ファイル 生成ファイル 内容
smlyacc YaccInputFileName.grm YaccInputFileName.grm.sml 構文解析プログラム
YaccInputFileName.grm.sig パーザトークンシグネチャ
YaccInputFileName.grm.desc LRオートマトン状態記述
smllex LexInputFileName.lex LexInputFileName.lex.sml 字句解析プログラム
  • smlyaccコマンドには入力ファイル名入力ファイル名 YaccInputFileName.grmのみを指定する. 出力ファイル名を変更したい場合は,以下の環境変数で設定できる.

    SMLYACC_OUTPUT=YaccOutputFileName.sml

    この指定をすると,トークンシグネチャは,指定したファイルの先頭に出力される. 出力ファイル名の指定はサフィックス(.sml)も含め指定する.

  • smllexコマンドには入力ファイル名入力ファイル名 LexInputFileName.lexのみを指定する. 出力ファイル名を変更したい場合は,以下の環境変数で設定できる.

    SMLLEX_OUTPUT=LexOutputFileName.sml

    出力ファイル名の指定はサフィックス(.sml)も含め指定する.