[antlr-interest] How to use String Attributes in ANTLR3
Terence Parr
parrt at cs.usfca.edu
Tue Dec 12 13:23:33 PST 2006
Hi. $text is a built-in attribute...please don't use text as a user-
defined paramenter.:)
Ter
On Dec 12, 2006, at 1:01 PM, Foolish Ewe wrote:
> Hello All:
>
> I'm trying to add backend support to my grammar and for my
> convenience, I would like to have
> Java Strings "synthetic attributes" passed from the bottom up in
> the grammar (so that I can
> access them in non terminal productions). I tried following the
> approach that appears to
> be suggested in the expression evaluator in the wiki, at:
> http://www.antlr.org/wiki/display/ANTLR3/Expression+evaluator
>
> However, something like:
>
> testCommandSuffix returns [String text]
> :
> ACTION {$text = $ACTION.text;}
> ;
>
> generates errors reported in the console reading:
>
> [15:55:48] error(151): C:\temp\TestGrammar.g:111:10: cannot write
> to read only attribute: $text.
> [15:55:49] error(10): internal error:
> org.antlr.tool.Message.toString(Message.java:124): Assertion
> failed! Message ID 151 created but is not present in errorMsgIDs or
> warningMsgIDs.
>
> Have I made an error here, if so, how can I fix it? Otherwise, how
> does one specify a
> synthetic attribute in ANTLR?
>
> I have also noticed that in ANTLRworks 1.0b8, when trying to
> generate grammars, sometimes if I get
> an error, I will get a popup window reading:
> "Grammar Check failed:
> null
> Check Console for more Information"
>
> and if I try to edit the grammar or regenerate it, the console
> window does not get any new
> diagnostic messages routed to it. Does anyone else get this?
>
> Thanks:
>
> Bill M.
>
> _________________________________________________________________
> Visit MSN Holiday Challenge for your chance to win up to $50,000 in
> Holiday cash from MSN today! http://www.msnholidaychallenge.com/
> index.aspx?ocid=tagline&locale=en-us
>
More information about the antlr-interest
mailing list