0
私は知りませんが、よく言われていない質問は、他にどのように頼むべきかわかりません。 私は何を入力しているかにかかわらず、エラーブランチに終わっているように見えますが、どこでこれを止めているのか分かりません。私はちょうどここでC#Lex Yacc、文字リテラルをトークン化すべきですか?
で使用するために、このすべてを設定GPPGと呼ばレックス/ YACCの特定の味が私Yは
あるmethod : L_METHOD L_VALUE ')' { System.Diagnostics.Debug.WriteLine("Found a method: Name:" + $1.Data); }
| error { System.Diagnostics.Debug.WriteLine("Not valid in this statement context ");/*Throw new exception*/ }
;
を使用していますと、ここで私のレックス
\'[^']*\' {this.yylval.Data = yytext.Replace("'",""); return (int)Tokens.L_VALUE;}
[a-zA-Z0-9]+\( {this.yylval.Data = yytext; return (int)Tokens.L_METHOD;}
アイデアです私は Method('value')
をそれに渡して、これが正しい構文であることを正しく認識しなければならないということです。
最終的には計画はexecですMethod
に値としてさまざまなパラメータを渡してください
私はまたいくつかの派生を試みました。
大変ありがとうございます!私はそれが盲目的に単純なものでなければならないことを知っていた。 GPPGの場合、次のようになります。 '[()] \t \t \t {return(int)yytext [0]; } '特定の文字をサポートします。 – Beta033