[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