ocamlyacc

    0

    1答えて

    ocamllexとocamlyaccを使ってインタプリタを作成しましたが、レクサーとパーサーは正しく動作しますが、現在はすべてのそれらは順番に。たとえば、./interpret one.txt two.txt three.txtは、one.txtの解析と反対の意味でthree.txtを解析し、次にtwo.txtを、次にthree.txtを求めます。電流出力がある./interpret one.tx

    0

    1答えて

    formal_list:typ ID [{($ 1、$ 2)]} |フォーマルリストCOMMA一般ID($ 3、$ 4):: $ 1 このように これは何を意味しますか? a :: b これはaをbに追加することです

    0

    1答えて

    menhirで書かれたフロントエンドは、文字列から式ASTへの式の解析を試みます。フロントエンドParser_e.mainのエントリポイントは、私のOCamlコードのいくつかの異なる場所で呼び出されます。ですから、私は外部よりもフロントエンド内で起こりうるエラーをキャッチできるようにしたいと考えています。エラーをキャッチするとき、私が表示したいと思う重要な情報は、の入力文字列全体がフロントエンドが

    0

    1答えて

    私はglobalVarsとglobalFnsを持つレコードを返す必要があり、次のパーサを持っていますが、それが表示されません。 ast.mlのようにプログラムを定義し %start program %type <Ast.program> program %% program: decls EOF { $1 } decls: /* nothing */ {

    0

    1答えて

    私は次のコードをexprのように後に持っている:int {} | BOOL {}などしかし、私はこのパーサーの型で書く必要があります型がわからない、私はint型で動作する電卓の例がintですが、私のプログラムで浮動小数点文字の文字列など..ありがとうあなたの文法から判断 %{ dont know what to write here %} %token <int> INT %token

    5

    1答えて

    オペレーターがMenhirパーサー(Ocamlyaccに似ています)を使用して動的属性(優先順位と優先順位)を持つ言語を解析しようとしています。レキシングフェーズでは、すべての演算子がOP:stringトークンを埋めます(したがって、 "+"は(OP "+")などになります)。 演算子の属性は、解析時に決定され、演算子とその属性を関連付けるテーブルを埋めます。このテーブルが与えられると、このテーブ