ANTLRで選択された代替ノードを特定するにはどうすればよいですか?

ダビデ

私が次のものを持っているとしましょう:

variableDeclaration: Identifier COLON Type SEMICOLON;
Type: T_INTEGER | T_CHAR | T_STRING | T_DOUBLE | T_BOOLEAN;

ここで、これらのT_名は、「integer」、「char」などとして定義されています。

ここで、LittleLanguageというテストプログラムのexitVariableDeclarationメソッドを使用しているとします。LittleLanguageLexer.T_INTEGER(など)を参照することはできますが、コンテキストからこれらのタイプのどれが見つかったかを判断する方法がわかりません。

私はそうなると思っていましたがcontext.Type().getSymbol().getType()、それは正しい値を返しません。)を使用できることはわかってcontext.Type().getText(いますが、文字列の比較はしたくありません。

何が足りないのですか?

ありがとう

グローセンバーグ

トークンを時期尚早に組み合わせると、レクサーの情報が失われます。パーサールールで組み合わせる方がよい:

variableDeclaration: Identifier COLON type SEMICOLON;
type: T_INTEGER | T_CHAR | T_STRING | T_DOUBLE | T_BOOLEAN;

さて、typeその根底にあるトークンのインスタンスのユニークなタイプを持ってTerminalNodeは以下のとおりです。

variableDeclarationContext ctx = .... ;
TerminalNode typeNode = (TerminalNode) ctx.type().getChild(0);

switch(typeNode.getSymbol().getType()) {
  case YourLexer.T_INTEGER:
     ...

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

選択が変更された後、VirtualStringTreeで選択されたノードを取得するにはどうすればよいですか?

分類Dev

各フィールドのExcelテーブルで指定されたJSONノードを選択するにはどうすればよいですか?

分類Dev

selectSingleNodeでノードを選択した後、ノードの子ノードを反復処理するにはどうすればよいですか?

分類Dev

IDを使用せずにPolymerでノードを選択するにはどうすればよいですか?

分類Dev

JSツリーノードが選択されたときにその祖先を取得するにはどうすればよいですか?

分類Dev

jQueryでテキストノードを選択するにはどうすればよいですか?

分類Dev

XPathで親ノードを選択するにはどうすればよいですか?

分類Dev

xsltでノードの最大値を選択するにはどうすればよいですか?

分類Dev

springy.jsでノードを選択するにはどうすればよいですか

分類Dev

XPATHでのみ同じノードの位置を選択するにはどうすればよいですか?

分類Dev

VisNetworkでノードを選択したときにノードのラベルを表示するにはどうすればよいですか?

分類Dev

選択後にノードを挿入するにはどうすればよいですか?

分類Dev

特定のXMLノードを選択し、その子ノードの値をフェッチするにはどうすればよいですか?

分類Dev

選択したノードのすべてのIDをjsTreeのルートノードに取得するにはどうすればよいですか?

分類Dev

フォームで選択された値jQueryを取得するにはどうすればよいですか

分類Dev

EloquentORMで結合されたテーブルを選択するにはどうすればよいですか

分類Dev

forループで作成された要素を選択するにはどうすればよいですか?

分類Dev

vueで選択フィールドで選択されたオプションを設定するにはどうすればよいですか?

分類Dev

mongo findですべての(選択された)レコードを選択するにはどうすればよいですか?

分類Dev

特定の属性値を持つXDocumentから特定のノードを選択するにはどうすればよいですか?

分類Dev

選択した画像マップの代替値を取得するにはどうすればよいですか?

分類Dev

選択されたときにCollectionviewCell画像をズームするにはどうすればよいですか?

分類Dev

ヘッダーに固定された図面を選択するにはどうすればよいですか?

分類Dev

JQueryセレクターを使用してHTMLDomで特定の子ノードを選択するにはどうすればよいですか?

分類Dev

列が連結されたテーブルを選択するにはどうすればよいですか?

分類Dev

AngularJSでハードコードされた選択値をnullではなくvalueに設定するにはどうすればよいですか?

分類Dev

XPathを使用してHTMLまたはXMLで名前のないノードを選択するにはどうすればよいですか?

分類Dev

VBAコードで選択した画像を区別するにはどうすればよいですか?

分類Dev

AngularJSで選択したレコードを取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    選択が変更された後、VirtualStringTreeで選択されたノードを取得するにはどうすればよいですか?

  2. 2

    各フィールドのExcelテーブルで指定されたJSONノードを選択するにはどうすればよいですか?

  3. 3

    selectSingleNodeでノードを選択した後、ノードの子ノードを反復処理するにはどうすればよいですか?

  4. 4

    IDを使用せずにPolymerでノードを選択するにはどうすればよいですか?

  5. 5

    JSツリーノードが選択されたときにその祖先を取得するにはどうすればよいですか?

  6. 6

    jQueryでテキストノードを選択するにはどうすればよいですか?

  7. 7

    XPathで親ノードを選択するにはどうすればよいですか?

  8. 8

    xsltでノードの最大値を選択するにはどうすればよいですか?

  9. 9

    springy.jsでノードを選択するにはどうすればよいですか

  10. 10

    XPATHでのみ同じノードの位置を選択するにはどうすればよいですか?

  11. 11

    VisNetworkでノードを選択したときにノードのラベルを表示するにはどうすればよいですか?

  12. 12

    選択後にノードを挿入するにはどうすればよいですか?

  13. 13

    特定のXMLノードを選択し、その子ノードの値をフェッチするにはどうすればよいですか?

  14. 14

    選択したノードのすべてのIDをjsTreeのルートノードに取得するにはどうすればよいですか?

  15. 15

    フォームで選択された値jQueryを取得するにはどうすればよいですか

  16. 16

    EloquentORMで結合されたテーブルを選択するにはどうすればよいですか

  17. 17

    forループで作成された要素を選択するにはどうすればよいですか?

  18. 18

    vueで選択フィールドで選択されたオプションを設定するにはどうすればよいですか?

  19. 19

    mongo findですべての(選択された)レコードを選択するにはどうすればよいですか?

  20. 20

    特定の属性値を持つXDocumentから特定のノードを選択するにはどうすればよいですか?

  21. 21

    選択した画像マップの代替値を取得するにはどうすればよいですか?

  22. 22

    選択されたときにCollectionviewCell画像をズームするにはどうすればよいですか?

  23. 23

    ヘッダーに固定された図面を選択するにはどうすればよいですか?

  24. 24

    JQueryセレクターを使用してHTMLDomで特定の子ノードを選択するにはどうすればよいですか?

  25. 25

    列が連結されたテーブルを選択するにはどうすればよいですか?

  26. 26

    AngularJSでハードコードされた選択値をnullではなくvalueに設定するにはどうすればよいですか?

  27. 27

    XPathを使用してHTMLまたはXMLで名前のないノードを選択するにはどうすればよいですか?

  28. 28

    VBAコードで選択した画像を区別するにはどうすればよいですか?

  29. 29

    AngularJSで選択したレコードを取得するにはどうすればよいですか?

ホットタグ

アーカイブ