tree grammar PolyPrinter;
options {
	tokenVocab=Poly;
    language=ObjC;
	ASTLabelType=CommonTree;
	output=template;
}

poly:	^('+'  a=poly b=poly)	-> template(a={$a.st} b:b={$b.st}) "<a>+<b>"
	|	^(MULT a=poly b=poly)	-> template(a={$a.st} b:b={$b.st}) "<a><b>"
	|	^('^'  a=poly b=poly)	-> template(a={$a.st} b:b={$b.st}) "<a>^<b>"
	|	INT						-> {%{$INT.text}}
	|	ID						-> {%{$ID.text}}
	;