lexer

    0

    1答えて

    パーズツリーに入力を解析するパーサーを作成する必要がありますが、トークンとトークンが自動的に生成されて問題が発生しました。次の例では、私の問題.Thisの短いバージョンである文法である: s : a B a; a : '-' C | C; B : '-' | '+'; C : '1' | '2';> WS : (' ' | '\t' | '\r' | '\n

    0

    1答えて

    私のg4ファイルに少し問題があります。以下は私の文法である: // Define a grammar called Hello grammar GYOO; program : 'begin' block+ 'end'; block : statement+ ; statement : assign | print | add

    0

    2答えて

    数字、小数、パーセントの3種類が定義されています。 Percentage : (Sign)? Digit+ (Dot Digit+)? '%' ; Number : Sign? Digit+; Decimal : Sign? Digit+ Dot Digit*; 割合と小数の作業罰金が、私は番号を割り当てるときに、私は記号(+または - )を入れない限り、番号の前に、それはとしてそれを認識しません

    -2

    1答えて

    シンボルテーブルのメカニズムについては、コード例で詳しく説明できますか?

    0

    1答えて

    現在、antlr4を使用してパーサーを構築していますが、私はベストを尽くしたが問題は見つからなかった。私はそれを解明して解決するのを助けてくれますか?私は識別子の前にテキストを配置した場合、私はTEXTの前に識別子を置く場合 # grammer file : PluginDoc.g4: grammer PluginDoc pluginDef : pluginName | pluginDes

    1

    1答えて

    私は以下の文法を持っていて、ゆっくりと始めて、複雑な引数を移動しようとしています。 grammar Command; commands : command+ EOF; command : NAME args NL; args : arg | ; arg : DASH LOWER | LOWER; //arg : DASH 'a' | 'x'; NAME : [_a-zA-Z0-9

    0

    1答えて

    私は、F#とFsLexYaccライブラリを使って、インタプリタとコンパイラの基礎を勉強しようとしていますが、私はLexerとParserファイルを書く原則を理解するのに苦労しています... this example、 iterpreterのためのいくつかの簡単なSQLクエリを使用しています。私が探しているのは、this grammarをF#を使ってLexerとParserに変換する方法です。 AS

    0

    1答えて

    私は、レクサーとパーサーの文法を勉強しており、.g4ファイルに基づいてパーサーとレクサーを作成するためにANTLRを使用しています。しかし、私は、pushModeとpopModeが一般的に何をするのかと全く混同されています。 OPEN : '[' -> pushMode(BBCODE) ; TEXT : ~('[')+ ; mode BBCODE; CLOSE : ']

    1

    2答えて

    ragelを見ると、ファイルを合理的に読み込む方法を理解できません。私が理解する限り、それはトークンの途中で壊れていないメモリバッファを必要とします。これは明らかに、特にトークンのサイズがわからない場合、実装するにはかなりの労力が必要です。文字列の改行、エスケープなどがあります。もし私がそれをすべて実装していれば、私はもうラーゲルが必要なのか分かりません。 良い方法はありますか?

    0

    1答えて

    Ocamlのバージョン4.02.5でレクサーを作成しようとしていますが、ストリームのタイプが動作しないようで、Ocamlにとって便利なものはほとんど見つかりません。私が読んだほとんどのものは、ファイルからchar入力を取り込んでレキシングする例はあまりにも複雑です。 私が受け取っているエラーは、最初のストリーム宣言にあります。特定の構文の場所は '[<'の部分です。ストリームシンタックス用 ope