[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