public void finish() { reset(); ASTNode last = null; ASTNode curr; while (hasMoreNodes()) { if ((curr = nextNode()).isDiscard()) { if (last == null) { last = firstASTNode = nextNode(); } else { last.nextASTNode = nextNode(); } continue; } if (!hasMoreNodes()) break; last = curr; } this.last = last; reset(); }
public void finish() { reset(); ASTNode last = null; ASTNode curr; while (hasMoreNodes()) { if ((curr = nextNode()).isDiscard()) { if (last == null) { last = firstASTNode = nextNode(); } else { last.nextASTNode = nextNode(); } continue; } if (!hasMoreNodes()) break; last = curr; } this.last = last; reset(); }
public void finish() { reset(); ASTNode last = null; ASTNode curr; while (hasMoreNodes()) { if ((curr = nextNode()).isDiscard()) { if (last == null) { last = firstASTNode = nextNode(); } else { last.nextASTNode = nextNode(); } continue; } if (!hasMoreNodes()) break; last = curr; } this.last = last; reset(); }
private static void optimizeOperator(int operator, ASTNode tk, ASTNode tkOp, ASTLinkedList astLinkedList, ASTLinkedList optimizedAst) { switch (operator) { case Operator.REGEX: optimizedAst.addTokenNode(new RegExMatchNode(tk, astLinkedList.nextNode())); break; case Operator.CONTAINS: optimizedAst.addTokenNode(new Contains(tk, astLinkedList.nextNode())); break; case Operator.INSTANCEOF: optimizedAst.addTokenNode(new Instance(tk, astLinkedList.nextNode())); break; case Operator.CONVERTABLE_TO: optimizedAst.addTokenNode((new Convertable(tk, astLinkedList.nextNode()))); break; case Operator.SIMILARITY: optimizedAst.addTokenNode(new Strsim(tk, astLinkedList.nextNode())); break; case Operator.SOUNDEX: optimizedAst.addTokenNode(new Soundslike(tk, astLinkedList.nextNode())); break; default: optimizedAst.addTokenNode(tk, tkOp); } }
private static void optimizeOperator(int operator, ASTNode tk, ASTNode tkOp, ASTLinkedList astLinkedList, ASTLinkedList optimizedAst, ParserContext pCtx) { switch (operator) { case Operator.REGEX: optimizedAst.addTokenNode(new RegExMatchNode(tk, astLinkedList.nextNode(), pCtx)); break; case Operator.CONTAINS: optimizedAst.addTokenNode(new Contains(tk, astLinkedList.nextNode(), pCtx)); break; case Operator.INSTANCEOF: optimizedAst.addTokenNode(new Instance(tk, astLinkedList.nextNode(), pCtx)); break; case Operator.CONVERTABLE_TO: optimizedAst.addTokenNode((new Convertable(tk, astLinkedList.nextNode(), pCtx))); break; case Operator.SIMILARITY: optimizedAst.addTokenNode(new Strsim(tk, astLinkedList.nextNode(), pCtx)); break; case Operator.SOUNDEX: optimizedAst.addTokenNode(new Soundslike(tk, astLinkedList.nextNode(), pCtx)); break; case TERNARY: if ( pCtx.isStrongTyping() && tk.getEgressType() != Boolean.class && tk.getEgressType() != Boolean.TYPE ) throw new RuntimeException( "Condition of ternary operator is not of type boolean. Found " + tk.getEgressType() ); default: optimizedAst.addTokenNode(tk, tkOp); } }
private static void optimizeOperator(int operator, ASTNode tk, ASTNode tkOp, ASTLinkedList astLinkedList, ASTLinkedList optimizedAst, ParserContext pCtx) { switch (operator) { case Operator.REGEX: optimizedAst.addTokenNode(new RegExMatchNode(tk, astLinkedList.nextNode(), pCtx)); break; case Operator.CONTAINS: optimizedAst.addTokenNode(new Contains(tk, astLinkedList.nextNode(), pCtx)); break; case Operator.INSTANCEOF: optimizedAst.addTokenNode(new Instance(tk, astLinkedList.nextNode(), pCtx)); break; case Operator.CONVERTABLE_TO: optimizedAst.addTokenNode((new Convertable(tk, astLinkedList.nextNode(), pCtx))); break; case Operator.SIMILARITY: optimizedAst.addTokenNode(new Strsim(tk, astLinkedList.nextNode(), pCtx)); break; case Operator.SOUNDEX: optimizedAst.addTokenNode(new Soundslike(tk, astLinkedList.nextNode(), pCtx)); break; case TERNARY: if ( pCtx.isStrongTyping() && tk.getEgressType() != Boolean.class && tk.getEgressType() != Boolean.TYPE ) throw new RuntimeException( "Condition of ternary operator is not of type boolean. Found " + tk.getEgressType() ); default: optimizedAst.addTokenNode(tk, tkOp); } }
if ((tk = astLinkedList.nextNode()).getFields() == -1) { optimizedAst.addTokenNode(tk); if ((tkOp = astLinkedList.nextNode()).getFields() == -1) { optimizedAst.addTokenNode(tk, tkOp); ASTNode tk2 = astLinkedList.nextNode(); BinaryOperation bo; ASTNode oper = astLinkedList.nextNode(); ASTNode rightNode = astLinkedList.nextNode(); while (astLinkedList.hasMoreNodes() && (tkOp2 = astLinkedList.nextNode()).isOperator() && tkOp2.getFields() != -1 && (op2 = tkOp2.getOperator()) != -1 && op2 < 21) { bo.setRightMost(boOptimize(op2, bo.getRightMost(), astLinkedList.nextNode(), pCtx)); bo = boOptimize(op2, bo, astLinkedList.nextNode(), pCtx); tk2 = astLinkedList.nextNode(); bo = new BinaryOperation(op2, bo, astLinkedList.nextNode(), pCtx); tk2 = astLinkedList.nextNode(); && astLinkedList.peekNode().isAssignment()) { tkOp.discard(); optimizedAst.addTokenNode(tk, astLinkedList.nextNode());
if ((tk = astLinkedList.nextNode()).getFields() == -1) { optimizedAst.addTokenNode(tk); if ((tkOp = astLinkedList.nextNode()).getFields() == -1) { optimizedAst.addTokenNode(tk, tkOp); ASTNode tk2 = astLinkedList.nextNode(); BinaryOperation bo; ASTNode oper = astLinkedList.nextNode(); ASTNode rightNode = astLinkedList.nextNode(); while (astLinkedList.hasMoreNodes() && (tkOp2 = astLinkedList.nextNode()).isOperator() && tkOp2.getFields() != -1 && (op2 = tkOp2.getOperator()) != -1 && op2 < 21) { bo.setRightMost(boOptimize(op2, bo.getRightMost(), astLinkedList.nextNode(), pCtx)); bo = boOptimize(op2, bo, astLinkedList.nextNode(), pCtx); tk2 = astLinkedList.nextNode(); bo = new BinaryOperation(op2, bo, astLinkedList.nextNode(), pCtx); tk2 = astLinkedList.nextNode(); && astLinkedList.peekNode().isAssignment()) { tkOp.discard(); optimizedAst.addTokenNode(tk, astLinkedList.nextNode());
if ((tk = astLinkedList.nextNode()).getFields() == -1) { optimizedAst.addTokenNode(tk); if ((tkOp = astLinkedList.nextNode()).getFields() == -1) { optimizedAst.addTokenNode(tk, tkOp); ASTNode tk2 = astLinkedList.nextNode(); BinaryOperation bo; ASTNode oper = astLinkedList.nextNode(); ASTNode rightNode = astLinkedList.nextNode(); while (astLinkedList.hasMoreNodes() && (tkOp2 = astLinkedList.nextNode()).isOperator() && tkOp2.getFields() != -1 && (op2 = tkOp2.getOperator()) != -1 && op2 < 21) { bo.setRightMost(new BinaryOperation(op2, bo.getRightMost(), astLinkedList.nextNode(), ctx)); bo = new BinaryOperation(op2, bo, astLinkedList.nextNode(), ctx); tk2 = astLinkedList.nextNode(); bo = new BinaryOperation(op2, bo, astLinkedList.nextNode(), ctx); tk2 = astLinkedList.nextNode(); && astLinkedList.peekNode().isAssignment()) { tkOp.discard(); optimizedAst.addTokenNode(tk, astLinkedList.nextNode());