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

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

SML#システムをインストースするとコマンドsmlyaccと smllexが同時にインストールされる. これらは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)も含め指定する.