package agg.attribute.parser.javaExpr;
/* JJT: 0.2.2 */
/**
* @version $Id: TYPE1xTYPE1toBOOL.java,v 1.4 2010/03/31 21:10:49 olga Exp $
* @author $Author: olga $
*/
public class TYPE1xTYPE1toBOOL extends SimpleNode {
static final long serialVersionUID = 1L;
TYPE1xTYPE1toBOOL(String id) {
super(id);
}
public static Node jjtCreate(String id) {
return new TYPE1xTYPE1toBOOL(id);
}
public void checkContext() throws ASTWrongTypeException {
Node child1 = jjtGetChild(0), child2 = jjtGetChild(1);
// System.out.println("TYPE1xTYPE1toBOOL.checkContext:: child1:
// "+child1);
// System.out.println("TYPE1xTYPE1toBOOL.checkContext:: child2:
// "+child2);
child1.checkContext();
child2.checkContext();
if (((SimpleNode)child1).hasNumberType()
&& ((SimpleNode)child2).hasNumberType()) {
setNodeClass(Boolean.TYPE);
} else if (((SimpleNode)child1).getNodeClass() == ((SimpleNode)child2).getNodeClass()) {
setNodeClass(Boolean.TYPE);
} else {
// xxx!=null or xxx==null
// System.out.println("TYPE1xTYPE1toBOOL.checkContext::
// "+child1.getNodeClass());
// System.out.println("TYPE1xTYPE1toBOOL.checkContext::
// "+child2.getNodeClass());
// System.out.println("TYPE1xTYPE1toBOOL.checkContext::
// "+child2.toString()+" "+child2.getString());
if (((SimpleNode)child1).getNodeClass() != null
&& ((SimpleNode)child2).getNodeClass().getName().equals(
"java.lang.Object")
&& child2.getString().equals("null")) {
// System.out.println("TYPE1xTYPE1toBOOL.checkContext::
// "+child1.getString()+ " ?= "+child2.getString()+" DONE");
setNodeClass(Boolean.TYPE);
return;
}
throw new ASTWrongTypeException("[TYPE_1 x TYPE_1 -> boolean]", "["
+ ((SimpleNode)child1).getNodeClass().getName() + " x "
+ ((SimpleNode)child2).getNodeClass().getName() + "]");
}
}
}
/*
* $Log: TYPE1xTYPE1toBOOL.java,v $
* Revision 1.4 2010/03/31 21:10:49 olga
* tuning
*
* Revision 1.3 2007/09/10 13:05:47 olga
* In this update:
* - package xerces2.5.0 is not used anymore;
* - class com.objectspace.jgl.Pair is replaced by the agg own generic class agg.util.Pair;
* - bugs fixed in: usage of PACs in rules; match completion;
* usage of static method calls in attr. conditions
* - graph editing: added some new features
* Revision 1.2 2006/01/16 09:37:01 olga
* Extended attr. setting
*
* Revision 1.1 2005/08/25 11:56:52 enrico *** empty log message ***
*
* Revision 1.1 2005/05/30 12:58:01 olga Version with Eclipse
*
* Revision 1.2 2003/03/05 18:24:15 komm sorted/optimized import statements
*
* Revision 1.1.1.1 2002/07/11 12:17:04 olga Imported sources
*
* Revision 1.5 2000/04/05 12:11:13 shultzke serialVersionUID aus V1.0.0
* generiert
*
* Revision 1.4 2000/03/14 11:00:00 shultzke Transformieren von Variablen auf
* Variablen sollte jetzt funktionieren Ueber das Design der Copy-Methode des
* abstrakten Syntaxbaumes sollte unbedingt diskutiert werden.
*
*/