/* Generated By:JJTree: Do not edit this line. ASTatom.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.HashMap;
import querying.parsing.query.QASTatom;
import querying.parsing.query.QASTpredSymbol;
import querying.parsing.query.QASTterm;
import querying.parsing.query.QASTtermList;
public
class ASTatom extends SimpleNode {
public ASTatom(int id) {
super(id);
}
public ASTatom(QASTatom atom) {
super(SparcTranslatorTreeConstants.JJTATOM);
QASTpredSymbol QpredSymbol=(QASTpredSymbol)atom.jjtGetChild(0);
ASTpredSymbol predSymbol=new ASTpredSymbol(SparcTranslatorTreeConstants.JJTPREDSYMBOL);
predSymbol.image=QpredSymbol.getImage();
ASTextendedNonRelAtom nonRelAtom=new ASTextendedNonRelAtom(SparcTranslatorTreeConstants.JJTEXTENDEDNONRELATOM);
nonRelAtom.jjtAddChild(predSymbol, 0);
if(atom.jjtGetNumChildren()>1) {
QASTtermList QtermList=(QASTtermList)atom.jjtGetChild(1);
ASTtermList termList=new ASTtermList(SparcTranslatorTreeConstants.JJTTERMLIST);
for(int i=0;i<QtermList.jjtGetNumChildren();i++) {
QASTterm term =(QASTterm) QtermList.jjtGetChild(i);
termList.jjtAddChild(new ASTterm(term.toString()), i);
}
nonRelAtom.jjtAddChild(termList, 1);
}
this.jjtAddChild(nonRelAtom, 0);
}
public ASTatom(SparcTranslator p, int id) {
super(p, id);
}
/** Accept the visitor. **/
public Object jjtAccept(SparcTranslatorVisitor visitor, Object data) {
return visitor.visit(this, data);
}
// disallow toString() call without sort renaming map
@Override
public String toString() {
throw new UnsupportedOperationException();
}
public String toString(HashMap<String,String> sortRenaming) {
/*
aggregate()|+
symbolicTerm() rel() symbolicTerm() |
symbolicTerm() rel() var()|
arithmeticTerm() rel() arithmeticTerm()|
var() rel() symbolicTerm() |
arithmeticTerm() eqrel() symbolicTerm() |
symbolicTerm() eqrel() arithmeticTerm()|
extendedNonRelAtom() +
var() eq var()
*/
if(this.jjtGetNumChildren()>0 && (((SimpleNode)(this.jjtGetChild(0))).getId()
==SparcTranslatorTreeConstants.JJTAGGREGATE)) {
return ((ASTaggregate)(this.jjtGetChild(0))).toString(sortRenaming);
}
if(this.jjtGetNumChildren()>0 && (((SimpleNode)(this.jjtGetChild(0))).getId()
==SparcTranslatorTreeConstants.JJTEXTENDEDNONRELATOM)) {
return ((ASTextendedNonRelAtom)(this.jjtGetChild(0))).toString(sortRenaming);
}
else if(this.jjtGetNumChildren()==2) {
SimpleNode child1=(SimpleNode)this.jjtGetChild(0);
SimpleNode child2=(SimpleNode)this.jjtGetChild(1);
return child1.toString()+this.image+child2.toString();
}
else {
return this.image;
}
}
}
/* JavaCC - OriginalChecksum=68be2106f288cf287b9a442791f7190c (do not edit this line) */