antlr4

    1

    2答えて

    私はANTLRで開始しようとしています。モジュールantlrをインポートするとうまくいきますが、インポートしようとするとMyGrammarLexerとMyGrammarParserは、MyGrammarLexerとParserがlibにないことを示しています。私はPyCharmを使用して、私はANTLRをインストール:私はMyGrammarLexerとMyGrammarParserをインポートする

    0

    1答えて

    このpost about the antlr simple exampleは、Javaのための文法の作成方法を示しています。 ただし、Exp.gソースで文法とJavaソースコードが混在しています。 私の質問は、1つの文法ファイルを複数のJava、Scala、C++などのレクサー/パーサーの生成に使用できるように、文法ファイルをターゲット言語から切り離すことは可能ですか?

    0

    1答えて

    私の割り当てにパーサーのルールを書き込もうとしています。代入では、 "変数宣言"の部分をいくつかの型で行う必要があります。私はすべてのタイプでうまくいった。例: int i; または: ブールBC。 しかし、Array型では機能しません。例: int a [5];ここで 私が書いたコードです: vardecl: pritype id (COMMA id)* SEMI ; pritype: INT

    -1

    1答えて

    私が持っていたパーサのコードをコンパイルしながら: funcall: ID LB exp? RB ; exp: funcall | INTLIT ; その後 私の割り当ては、私が「funcallの」のために、次のように実行する必要があることが必要です。 An invocation expression is a function call which starts with an iden

    0

    2答えて

    私はANTLR4を使ってパーサーを生成しています。私はパーサーの文法には新しいです。私は非常に役に立ちましたANTLR Mega Tutorialを読んだことがありますが、私はまだレクサーとパーサーの規則を正しく(そして/または書く)方法に固執しています。私は、パーサはこのようなものを扱うことができるようにしたい : こんにちは< <名>>、お元気ですか? 実行時に「< < >>」をユーザーの名前

    0

    1答えて

    私の文法は、特定の文脈を除いて大部分の空白を無視する必要があります。 this questionへの回答は、必要な例外を処理するための特定のレクサールールを定義することを推奨しています。 問題は(私は)レクサーレベルでそのようなケースを処理できないことです。なぜなら、それらはパーサーレベルで高いトリガーを受けているように見えるからです。 は、具体的には:私は私が持っていることを心に留めて MyRu

    0

    2答えて

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

    0

    1答えて

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

    0

    1答えて

    Antlrを使用して、非常に単純なパーサを作成しようとしています。これは、基本的に一連の. -delimited識別子をトークン化します。パーサが生成されると r : STRUCTURE_SELECTOR ; STRUCTURE_SELECTOR: '.' (ID STRUCTURE_SELECTOR?)? ; ID : [_a-z0-9$]* ; WS : [ \t\r\n]+ ->

    1

    1答えて

    をビルドします。 LPAREN : '(' ; RPAREN : ')' ; FUNCTIONNAME : 'CONCAT' ; ARGUMENTS : TEXT (',' TEXT)* ; TEXT : ('a'..'z' | '0'..'9' | 'A'..'Z')+; allFunction : FUNCTIONNAME LPAREN ARG