[antlr-interest] Current antlr bugs [b7]
Terence Parr
parrt at cs.usfca.edu
Sun Apr 29 14:53:26 PDT 2007
Hi. Works No problem for me.
Thank you for your bug reports, but I have a request:
1. please make the grammar as small as you can make it that still
exhibits the error.
2. please tell me which rule you invoked as the start symbol and/or
3. please send the test invocation as well so that I may know if you
are using a strange token stream or something
Regards,
Terence
On Apr 27, 2007, at 6:51 AM, Ilia Kantor wrote:
>
> And more bugs to go.... I guess such exception is not normal:
>
> Exception in thread "main"
> java.lang.ArrayIndexOutOfBoundsException: -1
> at org.antlr.runtime.DFA.predict(DFA.java:43)
> at GetScopeValueCleanParser.rule_long_def_part
> (GetScopeValueCleanParser.java:554)
> at GetScopeValueCleanParser.synpred1_fragment
> (GetScopeValueCleanParser.java:1352)
> at GetScopeValueCleanParser.synpred1(GetScopeValueCleanParser.java:
> 1392)
> at GetScopeValueCleanParser.rule_call
> (GetScopeValueCleanParser.java:182)
> at GetScopeValueCleanParser.expr_simple
> (GetScopeValueCleanParser.java:1307)
> at GetScopeValueCleanParser.expr_no_semi
> (GetScopeValueCleanParser.java:1137)
> at GetScopeValueCleanParser.expr(GetScopeValueCleanParser.java:946)
> at GetScopeValueCleanParser.exprs(GetScopeValueCleanParser.java:862)
> at GetScopeValueCleanParser.document(GetScopeValueCleanParser.java:
> 76)
> at GrammarScopeValueCleanTest.main(GrammarScopeValueCleanTest.java:
> 39)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:
> 90)
>
> =============== grammar =============
>
> grammar GetScopeValueClean;
>
> options {
> output=AST;
> }
>
>
> tokens {
> TEXT;
> GET_PROPERTY_VALUE;
> GET_PROPERTY_ARGUMENTS;
> EVAL;
> }
>
>
> LCURL : '{';
> RCURL : '}';
>
> GET_SCOPE_VALUE
> : '#';
>
>
> CONTROL
> : '~';
>
> SEMI: ';';
>
> DOT : '.';
>
>
>
> MINUS
> : '-';
>
> GT : '>';
>
>
> SPECIAL_CHAR
> : '`' | '!' | '@' | '$' | '%' | '^' | '&' | '*' | '('
> | ')' |
> '+' | '=' | '[' | ']' | ':' | '\'' | '"' | '\\' | '|' | ','
> | '<' |
> '/' | '?';
>
>
>
> fragment WS_CHAR :
> (' '|'\r'|'\t'|'\u000C'|'\n' )
> ;
>
> WS : WS_CHAR+;
>
> // not SPECIAL_CHAR not WS_CHAR
> WORD:
>
> (~ ('`' | '!' | '@' | '$' | '%' | '^' | '&' | '*' | '(' |
> ')' |
> '+' | '=' | '[' | ']' | ':' | '\'' | '"' | '\\' | '|' | ','
> | '<' | '/' | '?'
> | '{'
> | '~'
> | '}'
> | '#'
> | ';'
> | '.'
> | '-'
> | '>'
> | ' '|'\r'|'\t'|'\u000C'|'\n' ) )+
>
> ;
>
>
>
> document
> : exprs;
>
>
>
> rule_call: GET_SCOPE_VALUE WORD ((rule_long_def_part)
> =>rule_long_def_part)* -> ^(GET_SCOPE_VALUE WORD
> rule_long_def_part*) |
> GET_SCOPE_VALUE LCURL WORD rule_long_def_part* RCURL -> ^
> (GET_SCOPE_VALUE WORD rule_long_def_part*)
> ;
>
>
> get_property_arguments
> :
> LCURL exprs? RCURL -> ^(GET_PROPERTY_ARGUMENTS exprs?)
> ;
>
> rule_long_def_part
> : MINUS GT WORD ((get_property_arguments)
> =>get_property_arguments)* -> ^(GET_PROPERTY_VALUE WORD
> get_property_arguments*) |
> DOT WORD -> ^(GET_SCOPE_VALUE WORD)
> ;
>
> text:
> DOT | MINUS | WORD | WS | GT | SPECIAL_CHAR
> ;
>
>
> curly_block
> :
> LCURL exprs? RCURL -> LCURL exprs? RCURL
> ;
>
> exprs:
> (expr)+
> ;
>
>
> expr:
> (
> expr_no_semi -> expr_no_semi |
> SEMI -> TEXT[$SEMI]
> )
> ;
>
> exprs_no_semi
> : (expr_no_semi)+
> ;
>
>
> expr_no_semi
> :
> (expr_simple) | (curly_block)
> ;
>
> exprs_simple
> : (expr_simple)+
> ;
>
> /* expression without curl at start and ; */
> expr_simple
> :
> rule_call
> | text
> ;
>
>
> ============== input ================
> cdsd #rere->a{#c+1}{2 2} kljkl
>
>
> Hope this bug is simple one!
>
> Happy fixing
> V/R
> Ilia Kantor
>
>
>
More information about the antlr-interest
mailing list