私は "Modern Compiler Implementation in ML"を使って、SMLをOCamlに変換しています。この本は、Tigerという言語を定義しています。この言語は、与えられた式のスコープ内の型、変数、関数を宣言するための構文がlet ... in ... endです。さらに、同じ種類の隣接宣言は、相互再帰を可能にするためにグループ化する必要があります。私は、シフト/紛争を減
Andrew AppelのTiger言語(ocaml)の現在の私の現在のlexerとparserです。 私は現在、相互再帰関数をサポートしようとしているが、次のパーサコードは動作しません。 decs :
| l = list(dec) { l }
dec :
| t = nonempty_list(loc(tydec)) { S.TypeDec t }
| v =
私は次のコードをexprのように後に持っている:int {} | BOOL {}などしかし、私はこのパーサーの型で書く必要があります型がわからない、私はint型で動作する電卓の例がintですが、私のプログラムで浮動小数点文字の文字列など..ありがとうあなたの文法から判断 %{
dont know what to write here
%}
%token <int> INT
%token