[antlr-interest] TreeWalker error(100)

benjamin.b.lenz at daimlerchrysler.com benjamin.b.lenz at daimlerchrysler.com
Tue Aug 28 10:14:07 PDT 2007


Hi guys,

I'm new developing a parser grammar with ANTLR. I have to rewrite some of
the Java1.5 rules to create an AST and build a TreeWalker to visit the
nodes and extract the infos...

During my beginning I tried to start from bottom to top and rewrite more
and more grammar rules. But in a very basic grammar I found the error(100)
and no useful ref on the antlr list.

I want to use the duplicating nodes rule on

qualifiedName
      :     Identifier ('.' Identifier)*
      ;

So I tried

qualifiedName
      :     Identifier ('.' Identifier)* -> ^(Identifier Identifier*)
      ;

This works in the parser grammar but the ANTLR plugin for eclipse gives me
the
error(100): unexpected token: ^(
expecting SEMI, foun


and later on

error(204): duplicate token type '\005f' when collapsing subrule into set

it would be great if anybody could help me what wrong here..

thanks!!

Ben

here the code:

tree grammar Walker;

options{
      tokenVocab = Java;
      ASTLabelType = CommonTree;
}

compilationUnit
      :     packageDeclaration?
      ;

packageDeclaration
      :     'package' qualifiedName ';'
      ;

qualifiedName
      :     Identifier ('.' Identifier)* -> ^(Identifier Identifier*)
      ;

Identifier
    :   Letter (Letter|JavaIDDigit)*
    ;

fragment
Letter
    :  '\u0024' |
       '\u0041'..'\u005a' |
       '\u005f' |
       '\u0061'..'\u007a' |
       '\u00c0'..'\u00d6' |
       '\u00d8'..'\u00f6' |
       '\u00f8'..'\u00ff' |
       '\u0100'..'\u1fff' |
       '\u3040'..'\u318f' |
       '\u3300'..'\u337f' |
       '\u3400'..'\u3d2d' |
       '\u4e00'..'\u9fff' |
       '\uf900'..'\ufaff'
    ;

fragment
JavaIDDigit
    :  '\u0030'..'\u0039' |
       '\u0660'..'\u0669' |
       '\u06f0'..'\u06f9' |
       '\u0966'..'\u096f' |
       '\u09e6'..'\u09ef' |
       '\u0a66'..'\u0a6f' |
       '\u0ae6'..'\u0aef' |
       '\u0b66'..'\u0b6f' |
       '\u0be7'..'\u0bef' |
       '\u0c66'..'\u0c6f' |
       '\u0ce6'..'\u0cef' |
       '\u0d66'..'\u0d6f' |
       '\u0e50'..'\u0e59' |
       '\u0ed0'..'\u0ed9' |
       '\u1040'..'\u1049'
   ;




If you are not the intended addressee, please inform us immediately that you have received this e-mail by mistake and delete it. We thank you for your support.


More information about the antlr-interest mailing list