[antlr-interest] feeding conditional terms to stringtemplate

siemsen at ucar.edu siemsen at ucar.edu
Thu Feb 14 14:07:44 PST 2008


I've got this rule in an ANTLR 3 grammar:

qualifierDeclaration
	: QUALIFIER qualifierName COLON qualifierType qualifierFlavorList?  
SEMICOLON
         {
		qualifierDefinition qDef = new qualifierDefinition(
			$qualifierName.text,
			$qualifierType.type,
			$qualifierFlavorList.fList);
	}
     ;

It works fine when a qualifierFlavorList exists in the input stream.   
When it doesn't, I get a NullPointerException because  
$qualifierFlavorList.fList isn't defined.  To make it work, I did this:

qualifierDeclaration
	: QUALIFIER qualifierName COLON qualifierType  
( qFl=qualifierFlavorList )? SEMICOLON
         {
		ArrayList fl = new ArrayList();
		if (qFl != null) {
			fl = qFl.fList;
		}
		qualifierDefinition qDef = new qualifierDefinition(
			$qualifierName.text,
			$qualifierType.type,
			fl);
	}
     ;

This seems rather klunky.  Is there a more elegant way to deal with it?

-- Pete

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20080214/3b606b6e/attachment.html 


More information about the antlr-interest mailing list