package agg.attribute.parser.javaExpr; /* JJT: 0.2.2 */ /** * @version $Id: ASTOrNode.java,v 1.5 2010/07/29 10:09:23 olga Exp $ * @author $Author: olga $ */ public class ASTOrNode extends BOOLxBOOLtoBOOLnode { static final long serialVersionUID = 1L; ASTOrNode(String id) { super(id); } public static Node jjtCreate(String id) { return new ASTOrNode(id); } public void interpret() { // System.out.println("ASTOrNode.interpret() ..."); Object result; // jjtGetChild(0).interpret(); try { jjtGetChild(0).interpret(); } catch (Exception e) { // System.out.println("ASTOrNode.interpret() ... ex: // "+jjtGetChild(0)+" :: "+e); if (e instanceof ASTMissingValueException) { } else throw (RuntimeException) e; } if (((Boolean) stack.get(top)).booleanValue()) { stack.set(top, new Boolean(true)); return; } // jjtGetChild(1).interpret(); try { jjtGetChild(1).interpret(); } catch (Exception e) { // System.out.println("ASTOrNode.interpret() ... ex: // "+jjtGetChild(1)+" :: "+e); if (e instanceof ASTMissingValueException) { } else throw (RuntimeException) e; } // System.out.println("ASTOrNode.interpret() stack[top]: "+stack[top]); // System.out.println("ASTOrNode.interpret() stack[top+1]: // "+stack[top+1]); if (stack.get(top+1) instanceof Boolean) result = new Boolean(((Boolean) stack.get(top)).booleanValue() || ((Boolean) stack.get(top+1)).booleanValue()); else if ((top > 0) && (stack.get(top-1) instanceof Boolean)) result = new Boolean(((Boolean) stack.get(top)).booleanValue() || ((Boolean) stack.get(top-1)).booleanValue()); else result = new Boolean(((Boolean) stack.get(top)).booleanValue()); /* * result = new Boolean(((Boolean)stack[top]).booleanValue() || * ((Boolean)stack[top - 1]).booleanValue()); //((Boolean)stack[top + * 1]).booleanValue()); */ if (top > 0) stack.set(--top, result); else stack.set(top, result); // System.out.println("ASTOrNode.interpret() result: "+result); } public String getString() { Node left = jjtGetChild(0); Node right = jjtGetChild(1); return left.getString() + "||" + right.getString(); } } /* * $Log: ASTOrNode.java,v $ * Revision 1.5 2010/07/29 10:09:23 olga * Array stack changed to Vector stack * * Revision 1.4 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.3 2006/03/15 09:25:03 olga Some bugs of * attr. conditions fixed * * 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:16 komm sorted/optimized import statements * * Revision 1.1.1.1 2002/07/11 12:17:04 olga Imported sources * * Revision 1.6 2000/04/05 12:10:34 shultzke serialVersionUID aus V1.0.0 * generiert * * Revision 1.5 2000/03/14 10:59:26 shultzke Transformieren von Variablen auf * Variablen sollte jetzt funktionieren Ueber das Design der Copy-Methode des * abstrakten Syntaxbaumes sollte unbedingt diskutiert werden. * */