[antlr-interest] (no subject)
Jens Boeykens
jens.boeykens at gmail.com
Tue Jul 8 04:38:17 PDT 2008
I implemented a fix for this as follows:
*rewrite_template
: // -> template(a={...},...) "..." inline template
{input.LT(1).getText().equals("template")}?
id lp='(' rewrite_template_args ')'
rewrite_template_quote
-> ^(TEMPLATE[$lp,"TEMPLATE"] id rewrite_template_args
rewrite_template_quote)*
| ...
And
*rewrite_template_quote: DOUBLE_QUOTE_STRING_LITERAL |
DOUBLE_ANGLE_STRING_LITERAL ;*
And a similar change in ANTLRv3Tree.g
No sure if this is 'the' correct way to do this, but for so far it seems to
work.
Jens
2008/7/8 Jens Boeykens <jens.boeykens at gmail.com>:
> Actually I still get an error whit this lexer rule, both in my project and
> in antlrworks. It parses the quotes now, but at the end it throws an
> exception as output:
>
> Exception in thread "main"
> org.antlr.runtime.tree.RewriteEmptyStreamException: token st
> at
> org.antlr.runtime.tree.RewriteRuleElementStream._next(RewriteRuleElementStream.java:158)
> at
> org.antlr.runtime.tree.RewriteRuleTokenStream.next(RewriteRuleTokenStream.java:57)
> at
> stage.antlr.regeneration.grammar.ANTLRv3Parser.rewrite_template(ANTLRv3Parser.java:10135)
> at
> stage.antlr.regeneration.grammar.ANTLRv3Parser.rewrite_alternative(ANTLRv3Parser.java:8446)
> at
> stage.antlr.regeneration.grammar.ANTLRv3Parser.rewrite(ANTLRv3Parser.java:8069)
> at
> stage.antlr.regeneration.grammar.ANTLRv3Parser.altList(ANTLRv3Parser.java:3855)
> at
> stage.antlr.regeneration.grammar.ANTLRv3Parser.rule(ANTLRv3Parser.java:2460)
> at __Test__.main(__Test__.java:16)
>
> It doesn't specifically occurs with the quotes '"'. The angles '<<' '>>'
> throw the same exception...
>
> Is there something wrong with my input?
>
> r : a -> template() "this is a temp";
> r : a -> template() <<this is a temp>>;
>
>
> Jens
>
>
> 2008/7/7 Terence Parr <parrt at cs.usfca.edu>:
>
> Wow... that freaked me out for a second... it turns out that there is a
>> lexer error, which both of us fail to see; I clicked on the output tab and
>> saw it. fix with this
>>
>> DOUBLE_QUOTE_STRING_LITERAL
>> : '"' (ESC | ~('\\'|'"'))* '"'
>> ;
>>
>>
>> Ter
>>
>>
>> On Jul 7, 2008, at 12:02 PM, Jens Boeykens wrote:
>>
>> Hello all,
>>>
>>> I'm have an issue with parsing a particular input with ANTLRv3.g (
>>> http://www.antlr.org/grammar/ANTLR).
>>> I'm trying to parse the following rule:
>>>
>>> r : a -> template() "Some test";
>>>
>>> This however doesn't parse, but I can't find a bug in ANTLRv3.g or a
>>> mistake in my input rule. Using ANTLRworks it seems to parse well until
>>> template() and than the match fails. Don't know what could be wrong with
>>> "..." though.
>>>
>>> Greetings
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20080708/f46ad2c4/attachment.html
More information about the antlr-interest
mailing list