flex-lexer

    0

    1答えて

    %{ #include<stdio.h> int vowel=0; %} %% [aeiouAEIOU] { vowel++; } %% int main() { char str[200]; gets(str); yylex(); printf("Vowels:",vowel); }

    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

    3答えて

    文字列または文字列の接頭辞が一致する場合に一致する正規表現を探しています。私は文字列「abcd」を持っている場合たとえば、それは - a - abc - aaaa なく - baa - the にマッチします私の現在の正規表現のソリューションはa | ab | abc | abcdある - しかし、より簡潔な方法があるかどうか不思議。

    -1

    1答えて

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

    0

    1答えて

    フレックスで二重引用符をマッピングするにはどうすればよいですか? """ {return ' " ';} 私は上記の方法を試しており、それを受け入れるようには思われません。 私はまた、これも働いていない "\"" {return ' " ';} を試してみました。

    0

    1答えて

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

    0

    1答えて

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

    0

    1答えて

    すでに完全に機能しているパーサーをクライアント提供のテキストバッファから読み込むように変更しています。 yyscan_bytes()を使用してバッファをロードします。残念ながら、これは、この(ロング既存)のFlexルールに既存の文法を使用して致命的なエラーにつながる: .|"\n" { BEGIN INIT; unput(yytext[0]); } 私は任意の入力を解析し、unput(

    0

    1答えて

    ためstdoutに空白をoutputingからレックスを停止する方法を、私は上記のコードを考えると %{ #include <string.h> %} %% [0-9]* {string.append("something"); return 1;} [^\n]* /*ignore*/ 以下のような正規表現を使用して、いくつかのルールを設定していると、プログラムは端末に

    0

    1答えて

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