lex

    1

    1答えて

    私はコンパイラを作るために勉強し、一つの文字列のようないくつかのルール持っている: char ch[] ="abcd"; とマルチストリング: printf("This is\ a multi\ string"); 私はそれが動作する正規表現 STRING \"([^\"\n]|\\{NEWLINE})*\" を書きました1行の文字列では問題ありませんが、1行が'\'文字で終了する

    0

    1答えて

    /と\ と一致する方法を探しています:もし文字列が "hello \ sir /!"私はhello \ sir /を手に入れたいです!

    0

    1答えて

    を実行する場合:左の式が非ゼロの場合 (式)(式) ?右の式が実行されます。 Bisonの文法規則を使用して、どのように私がそれを行うことができるかの例を誰にでも教えてください。ここで は、これまでのところ、私が持っているものを示して私のバイソンコードのPIECです: %union{ int d; char *s; } %token <d>INTEGER %token <s>VARIA

    0

    1答えて

    私が知っている限り、Flexはなぜ今まで使用されているのでしょうか? 今では使用されておらず、以前に使用されていた場合は、Cコードを直接書くよりも何が利点ですか? これは、私はそれはそれぞれの式が一致したとき を取られるために一緒に行動して、その入力として、正規表現を含むテキストファイルを取りフレックス 読んものです。入力ファイルの正規表現 に対応するDFAのテーブル駆動型実装である関数yylex

    0

    1答えて

    フレックスとバイソンを使い慣れていない簡単な電卓を実装しました。私は入力が文法の文であるかどうかを判断しようとしています。 たとえば、次のように入力します。a = 2; b = 3; a + bを印刷します。 それは返します:「A = 2; B = 3;プリントA + Bは、文である」 今のところは、実際に計算を行いますが、私は実際の計算ちょうど私を気にしません入力が文法の文であるかどうかを知りた

    0

    1答えて

    まあトピックを使用しながら、「定数」ここでは、自分のためのコード(コンパイル前lexのファイル)の例話す:vs13で実行しようとしたときに何らかの理由で %{ #include<stdio.h> int Upperc=0; int Lowerc=0; %} %% [A-Z] {printf("Upperccase\t");Upperc++;} [a-z] {printf("Low

    1

    1答えて

    私は、Windows上でFLEXを使って字句解析ツールを構築しようとしています。 私は常にエラーを取得しています: "undefined reference to `yylval'" 私は次のようにすべての定義がなされたextern型アップとしてyylval宣言: %option noyywrap %{ #include<stdio.h> #include<std

    0

    1答えて

    私は複数のセミコロンを受け入れるルールを入れたい、シンプルなCコードを受け付けるlexを設計しています。私は試しました(; {2、})&(;; +)、それは受け入れていません。 文LEXがオン動作するように起こっているが int i=1; i=3*2;;;; であると私は両方のステートメントを許可するように正規表現を追加します。 Cが検証するので;;;;

    0

    1答えて

    解析されたテキストファイルから16進数を特定しようとしていますが、すべてが約99%正確ですが、この特定のインスタンス0xa98hに問題があります。この行が見つかるたびに、それは無効であるため、無視するのではなく0xa98を出力します。私はこのコードに非常に多くのバリエーションを試してきましたが、その問題を除外する方法をまだ見つけていません。 [-]?[0][x|X][0-9A-F]+ {cout