[antlr-interest] a grammar problem
Fırat KÜÇÜK
firatkucuk at gmail.com
Fri May 18 12:04:56 PDT 2007
This is a sample programming language grammar in v3 format
-----------------------------------------------------------------------
grammar Sample;
start
: statement*
;
statement
: PRINT expressionList? SEMICOLON
;
expressionList
: expression (COMMA expression)* COMMA?
;
expression
: operation ((PLUS | MINUS) operation)*
;
operation
: inParens ((ASTERISK | SLASH) inParens)*
;
inParens
: LEFT_PARENTHESIS expression RIGHT_PARENTHESIS
| literal
;
literal
: NUMBER
| STRING
// SHOULD BE ARRAY
| LEFT_PARENTHESIS expressionList? RIGHT_PARENTHESIS
;
WHITESPACE : (' ' | '\t')+ {$channel = HIDDEN;} ;
NUMBER : ('0' .. '9')+ ;
STRING : '"' (.)* '"' ;
LEFT_PARENTHESIS : '(' ;
RIGHT_PARENTHESIS : ')' ;
PLUS : '+' ;
MINUS : '-' ;
ASTERISK : '*' ;
SLASH : '/' ;
PRINT : 'print' ;
COMMA : ',' ;
SEMICOLON : ';' ;
-----------------------------------------------------------------------
the problem is inParens rule and Array literals.
how can i fix this problem without using syntactic predicate?
--
Öğr. Gör. Fırat KÜÇÜK
ADAMYO Distance Learning
SAKARYA University / TURKEY
More information about the antlr-interest
mailing list