[antlr-interest] Problem with Syntactic Predicate
Alexander Gängel
alexander at gaengel.de
Tue Feb 26 10:41:29 PST 2008
Thank you David, I just did not notice I had the wrong Rule there.
Alexander
David Sweet schrieb:
> Hello Alexander,
>
> Should your start line read as follows:
>
> start : variableDeclaration EOF;
>
> I found that running your grammar ran emitted some "MismatchedToken"
> errors (SEMICOLONS were not expected I guess), but changing
> variableDeclarationPart to variableDeclaration parsed the input test;
> test:Type and created the AST I sort of expected.
>
> Regards,
>
> David Sweet
>
> Alexander Gängel wrote:
>> I just don't get this Syntactic Predicate to work
>>
>> the Problem is variableDeclaration I just don't see what I'm doing
>> wrong to get Input like:
>>
>> test; test:Type;test to work.
>>
>> Alexander
>>
>> grammar test;
>>
>> options {
>> output=AST;
>> ASTLabelType=CommonTree;
>> }
>>
>> tokens {
>> PATH;
>> Var;
>> Type;
>> TupleType;
>> }
>>
>> start : variableDeclarationPart EOF;
>>
>> variableDeclaration :(variableDeclarationPart SEMICOLON )=>
>> variableDeclarationPart SEMICOLON variableDeclaration
>> |variableDeclarationPart
>> ;
>> variableDeclarationPart
>> :Identifier (COLON typeCS)?;
>> typeCS :
>> (Identifier DOUBLE_COLON )=> Identifier DOUBLE_COLON typeCS
>> ->^(Type ^(PATH Identifier typeCS))
>> |Identifier -> ^(Type ^(PATH Identifier))
>> |tupleTypes -> ^(Type tupleTypes)
>> ;
>> tupleTypes
>> :
>> 'TupleType' '(' variableDeclaration ')' -> ^(TupleType
>> variableDeclaration)
>> ;
>> DOUBLE_COLON
>> :'::';
>> COMMA :',';
>> SEMICOLON :';';
>> COLON :':';
>> Identifier : ('a'..'z'|'A'..'Z'|'_') (Letter)*;
>> fragment
>> Letter :'a'..'z'|'A'..'Z'|'0'..'9'|'_'|'$';
>> WS : (' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;};
>>
>>
>>
>
More information about the antlr-interest
mailing list