bison

    0

    1答えて

    flexとbisonを使用してmini C言語のコンパイラを作成したいと思います。私の言語の例は次のようになります。ここでは /* This is an example uC program. */ int fac(int n) { if (n < 2) return n; return n * fac(n - 1); } int sum(int n, i

    1

    1答えて

    私はbisonとflexを使用して、(将来のどこか)抽象構文木(AST)を作成しています。今のところ、私は算術式(例えば+を使って)だけを持っていますが、式 - >式 '+'式|定数ですが、式には2つの属性、つまりコード(ルールの右側の最初の要素(RHS)の値を持つ文字列、+と2番目の式の値)が必要です。 私は次の構造を作成:文字列が(今のところ、私はちょうどそれらを印刷したい)としてそれらの両方

    0

    1答えて

    "lexicale.l", line 13: unrecognized rule "lexicale.l", line 13: unrecognized rule 線13は {idf} {printf("indetificateur\n");} コードでエラー認識できないルールの解決策を見つけることができませんです。 %{ #include "stdio.h" #in

    0

    2答えて

    私はYaccプログラミングを始める前に、入力テキストファイル に正しくペアのかっこのシーケンスが含まれているかどうかをチェックするプログラムを書くのは簡単な作業です。誤ったシーケンス は、「構文エラー!」として通知されます。私はバイソンとフレックスを使用します。 例正しいデータ: (()()((())())()) が、 (() が正しくありません 私の問題は、私はそれが動作するはずだと思うことです

    0

    1答えて

    のは、我々はこの文法 start: expressions; expressions: expressions expression | expression ; expression: expression NAME value { float $2 = $3;} | NAME value { float $1 = $2

    1

    2答えて

    この文法は、演算子の優先順位を指定していても競合しています。ドラゴンの本でさえ、そのような方法で解決されました(最初の7行で実装された方法)が、まだ矛盾します!以下 はYACCで実装コードです %right THEN_KW %right ELSE_KW %left XOR_KW OR_KW %right '=' %left AND_KW ALSO_KW %left EQ_KW LT_KW

    0

    1答えて

    私はflexとbisonを使用して架空のプログラミング言語用のパーサを作成しています。有効で無効な変数名が存在します。 XXXX XY-1 // valid XXXXX Z // valid XXX Y // valid XXX 5Aet // invalid XXXX XXAB-Y // invalid 最初のxは、変数のサイズを指定するだけです。変数5Aetは数字で始まるので、は無

    1

    1答えて

    私はバイソンコードヘッダー書いた: %{ #include "foo.h" %} をそして私は、ヘッダーに「フー」という名前の構造体を定義しました。私はBisonのトークンタイプとして使用したいと思います。 %define api.value.type union %token <Foo*> bar それから私はbison.tab.hファイルを生成するために-dオプションを使用します

    1

    2答えて

    私はFlexとBisonでCでプロジェクトをやっていますが、コンパイル中にエラーが見つかりました。ここで は誤りです:A_Sintactico.yyでyyerror関数の A_Sintactico.yy:186:6: error: conflicting types for ‘yyerror’ In file included from A_Sintactico.yy:3:0: A_Lexic

    1

    1答えて

    私はLexとYaccを使って小さなプロジェクトを開発しており、数学的表現を扱わなければなりません。私のファイルsyntax.yで 、私はプロダクションルールのこれらの2つのタイプがあります。 %union { char* lexeme; double value; } %token <lexeme> NUM %type <lexeme> expr %ty