/* Generated By:JJTree: Do not edit this line. ASTsortExpression.java Version 4.3 */ /* JavaCCOptions:MULTI=true,NODE_USES_PARSER=false,VISITOR=true,TRACK_TOKENS=false,NODE_PREFIX=AST,NODE_EXTENDS=,NODE_FACTORY=,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ package parser; import java.util.ArrayList; public class ASTsortExpression extends SimpleNode { public ASTsortExpression(int id) { super(id); } //create simple sort Expression for a set of items in curly brackets public ASTsortExpression(ArrayList<String> elements) { super(SparcTranslatorTreeConstants.JJTSORTEXPRESSION); ASTsetExpression setExpr = new ASTsetExpression(SparcTranslatorTreeConstants.JJTSETEXPRESSION); ASTadditiveSetExpression addSetExpr = new ASTadditiveSetExpression(SparcTranslatorTreeConstants.JJTADDITIVESETEXPRESSION); addSetExpr.image="+"; ASTmultiplicativeSetExpression multSetExpr = new ASTmultiplicativeSetExpression(SparcTranslatorTreeConstants.JJTMULTIPLICATIVESETEXPRESSION); ASTunarySetExpression unSetExpr = new ASTunarySetExpression(SparcTranslatorTreeConstants.JJTUNARYSETEXPRESSION); ASTcurlyBrackets curlyBrackets = new ASTcurlyBrackets(SparcTranslatorTreeConstants.JJTCURLYBRACKETS); ASTconstantTermList termList = new ASTconstantTermList(SparcTranslatorTreeConstants.JJTCONSTANTTERMLIST); setExpr.jjtAddChild(addSetExpr, 0); addSetExpr.jjtAddChild(multSetExpr, 0); multSetExpr.jjtAddChild(unSetExpr, 0); unSetExpr.jjtAddChild(curlyBrackets, 0); curlyBrackets.jjtAddChild(termList, 0); int index = 0; for(String s : elements) { termList.jjtAddChild(new ASTconstantTerm(s), index); index++; } this.jjtAddChild(setExpr, 0); } public ASTsortExpression(SparcTranslator p, int id) { super(p, id); } public ASTsortExpression(String funcSymbol, ArrayList<String> argSortNames) { super(SparcTranslatorTreeConstants.JJTSORTEXPRESSION); ASTfunctionalSymbol func = new ASTfunctionalSymbol(SparcTranslatorTreeConstants.JJTFUNCTIONALSYMBOL); ASTsortExpressionList sList = new ASTsortExpressionList(SparcTranslatorTreeConstants.JJTSORTEXPRESSIONLIST); for(int i = 0 ;i<argSortNames.size();i++) { ASTsortName child = new ASTsortName(SparcTranslatorTreeConstants.JJTSORTNAME); child.image = argSortNames.get(i); sList.jjtAddChild(child, i); } func.image = funcSymbol+"()"; func.jjtAddChild(sList, 0); this.jjtAddChild(func, 0); } /** Accept the visitor. **/ public Object jjtAccept(SparcTranslatorVisitor visitor, Object data) { return visitor.visit(this, data); } public String toString() { switch(((SimpleNode)this.jjtGetChild(0)).getId()) { case SparcTranslatorTreeConstants.JJTFUNCTIONALSYMBOL: return ((ASTfunctionalSymbol)(this.jjtGetChild(0))).toString(); case SparcTranslatorTreeConstants.JJTSETEXPRESSION: return ((ASTsetExpression)(this.jjtGetChild(0))).toString(); default: return this.image; } } } /* JavaCC - OriginalChecksum=24802ad5a91ff0b6c7c46db0619c53ea (do not edit this line) */