[antlr-interest] Struggling with RewriteEmptyStreamException

craig at palantir.co.za craig at palantir.co.za
Wed Jul 16 06:56:13 PDT 2008


Hi,

I have scaled back to the following simple grammar.
I am trying to parse 'declare namespace ns1=...'

I cannot even get that simple part to work. I am not sure what I am doing wrong
in the rewrite rule. The C# target is throwing a RewriteEmptyStreamException
(token DECLARE) when I make a new token, and rewrite to a new empty token it
complains about the $i as the symbol and so on.

What am I missing?
Version 3.1b1.


grammar XQuery;

options {
   language=CSharp2;
   output=AST; }
tokens {
  DECLARE='declare';
  NAMESPACE='namespace';
  ROOT='//';
  SEPARATOR='/';
}

// parser rules.
query: declaration+ ;
declaration: DECLARE NAMESPACE i=IDENTIFIER '=' l=LITERAL ';' -> ^(DECLARE $i
$l) ;

// token section.
IDENTIFIER:			('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')* ;
INTEGER:			'0'..'9'+ ;
NEWLINE:			'\r'? '\n' ;
COMPARATOR:			'>'|'<'|'>='|'<='|'=';
LITERAL:			'"' LITERAL_CHAR* '"';
WS:					(' '|'\t'|'\n'|'\r')+ { $channel = HIDDEN; } ;
fragment
LITERAL_CHAR:		~('\"'|'\\') ;



----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.




More information about the antlr-interest mailing list