Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 03a94d8f913fd31140f11f39714fa79d > files > 29

ant-antlr3-20110110-8.mga3.noarch.rpm

tree grammar PolyDifferentiator;
options {
	tokenVocab=Poly;
	ASTLabelType=CommonTree;
	output=AST;
//	rewrite=true; // works either in rewrite or normal mode
}

poly:	^('+' poly poly)
	|	^(MULT INT ID)		-> INT
	|	^(MULT c=INT ^('^' ID e=INT))
		{
		String c2 = String.valueOf($c.int*$e.int);
		String e2 = String.valueOf($e.int-1);
		}
							-> ^(MULT["*"] INT[c2] ^('^' ID INT[e2]))
	|	^('^' ID e=INT)
		{
		String c2 = String.valueOf($e.int);
		String e2 = String.valueOf($e.int-1);
		}
							-> ^(MULT["*"] INT[c2] ^('^' ID INT[e2]))
	|	INT					-> INT["0"]
	|	ID					-> INT["1"]
	;