bison

    0

    1答えて

    私はパスカルのサブセットを使ってプロジェクトを行っています。私もちょうど\ n個の代わりに[\ N]または[\ n]のではなく、期待される結果なしで、それに対処するための多くの方法を試してみました NLINE [\n] BRACKET ['('|')'] %% {BRACKET} { std::cout << "Found BRACKET symbol " << yytex

    0

    1答えて

    私はオブジェクト{"f": 1, "i": 2, "g": 5, ...}のようなJSONを解析する必要がなく、定期的なJSONオブジェクトとは異なり、入力がオブジェクト内のゼロまたは1つのオカレンスを持つことができます... ので、これは間違ったオブジェクトであります{"f": 1, "f": 1, "i": 2, ...} "f twice"キーがあるためです。 そして、このオブジェクトはキー

    2

    1答えて

    私はと協力していますレキシカル分析このため私はFlexを使用しており、以下の問題を取ります。 work.l int cnt = 0,num_lines=0,num_chars=0; // Problem here. %% [" "]+[a-zA-Z0-9]+ {++cnt;} \n {++num_lines; ++num_chars;} . {++num_chars;} %% int

    0

    1答えて

    私は行の内容を抽出し、その行の入力がbisonから拒否されたときにそれらを印刷しようとします。 私はこれらの提案を再現しようとしています:http://archive.oreilly.com/pub/a/linux/excerpts/9780596155971/error-reporting-recovery.htmlしかし、入力が拒否された場合、拒否された行の代わりに次の行が印刷されますが、行番

    -1

    1答えて

    yacc/lexを使ってシェルのための簡単な文法を書いています。私は文法にパイプラインを認識させたいと思っています。パイプラインの形式は次のとおりです: command1 | command2 | ... | commandn。私は以下のコードでthe simple_commandルールを非終端記号の開始として使用して、単一のコマンドを再調整することができます。しかし、パイプラインを解析するために

    0

    1答えて

    コンパイラを作成する基本的な概念を理解しようとしています。私は非常に基本的なCコンパイラを作成しようとしましたが、いくつかの問題が発生しました。変数yylinenoで構文エラーが発生した箇所を印刷しようとすると、行番号の一部が間違っています。なぜ誰が知っていますか?私はインターネットを検索しましたが、私は明確な答えを見つけることができません、ありがとう。 comp.lファイル: %{ #incl

    -1

    1答えて

    現在、コマンドラインインターフェイス上でのみ実行されるプログラミング言語を作成しました。私はそれをEclipse IDE上で実行したいと思います。私はそれについていくつかの研究をしましたが、本当に正確な答えを見つけることはできませんでした。 プログラミング言語はflexとbisonを使用して作成されたため、cを使用して作成されました。プログラミング言語用のGUIを作成する代わりに、代わりにEcli

    0

    1答えて

    私はフレックス/バイソンのレクサー/パーサーで扱いにくい問題を扱っています。ここで はローマ数字と任意の識別子のために、いくつかのフレックスルールです:今 "I"|"II"|"III"|"IV"|"V"|"VI"|"VII"|"i"|"ii"|"iii"|"iv"|"v"|"vi"|"vii" { return NUMERAL; } "foobar" { return FOOBAR; }

    1

    1答えて

    私が学んでいるフレックス/ Bison今はコンパイラを使うことができると思っていますが、私はもっと多くの質問をしています。シンタックスアナライザだけであり、新しいファイルを実行可能なユニバーサルウィンドウ私たちのプログラミング言語から。 Bisonによって生成されたファイルが実行されると、C言語のコード言語のみが解釈されます。 コンパイラを持たないウィンドウから実行可能ファイルを生成するコンパイラ

    0

    1答えて

    私はジョブコントロールシェルを作成しています。私は解析のためにYaccとLexを使う。私の文法の最上位のルールは、pipeline_listです。これはコンマで区切られたパイプラインのリストです。 cmd1 | cmd2; cmd3; cmd4 | cmd5 <newline> cmd1 <newline> <nothing> <newline> Iは(以下を示した)pipelineルール