public List<Integer> visitColumn_name(PrepRuleParser.Column_nameContext ctx) { List<Integer> suggest = Lists.newArrayList(); if(null!=ctx.exception) { IntervalSet intervalSet = ctx.exception.getExpectedTokens(); if(null!=intervalSet) { for(Interval expected : intervalSet.getIntervals()) { for (int token_num = expected.a; token_num <= expected.b; token_num++) { suggest.add(token_num); } } } } TerminalNode identifier = ctx.IDENTIFIER(); if(0<=identifier.getSourceInterval().a) { String value = ctx.getText(); } else { int tokenIdx = identifier.getSymbol().getType(); suggest.add(tokenIdx); } int childCount = ctx.getChildCount(); for(int i=0;i<childCount;i++) { ParseTree child = ctx.getChild(i); String childText = child.getText(); System.out.println(childText); } return suggest; } }
private Expression processIndexedArrayElement(final ParseTree arrayExprCtx, final KantParser.ExprContext sexpCtx, final TerminalNode ABELIAN_INCREMENT_OPCtx) { // | abelian_expr '[' expr ']' ABELIAN_INCREMENT_OP // | ABELIAN_INCREMENT_OP expr '[' expr ']' Expression retval = null; final Expression indexExpr = parsingData_.popExpression(); indexExpr.setResultIsConsumed(true); final Expression rawArrayBase = parsingData_.popExpression(); final Type rawArrayBaseType = rawArrayBase.type(); assert rawArrayBaseType instanceof ArrayType; final ArrayType arrayType = (ArrayType)rawArrayBaseType; final Type baseType = arrayType.baseType(); final ArrayExpression arrayBase = new ArrayExpression(rawArrayBase, baseType); arrayBase.setResultIsConsumed(true); final Interval JavaIDInterval = arrayExprCtx.getSourceInterval(); final Interval OperatorInterval = ABELIAN_INCREMENT_OPCtx.getSourceInterval(); final UnaryopExpressionWithSideEffect.PreOrPost preOrPost = JavaIDInterval.startsAfter(OperatorInterval)? UnaryopExpressionWithSideEffect.PreOrPost.Pre: UnaryopExpressionWithSideEffect.PreOrPost.Post; retval = new ArrayIndexExpressionUnaryOp(arrayBase, indexExpr, ABELIAN_INCREMENT_OPCtx.getText(), preOrPost, sexpCtx.getStart()); return retval; }
final Interval OperatorInterval = ctx.ABELIAN_INCREMENT_OP().getSourceInterval(); final PreOrPost preOrPost = AbelianAtomInterval.startsAfter(OperatorInterval)? UnaryopExpressionWithSideEffect.PreOrPost.Pre: UnaryopExpressionWithSideEffect.PreOrPost.Post;
final Interval JavaIDInterval = ctxJAVA_ID.getSourceInterval(); final Interval OperatorInterval = ctxABELIAN_INCREMENT_OP.getSourceInterval(); preOrPost = JavaIDInterval.startsAfter(OperatorInterval)? UnaryopExpressionWithSideEffect.PreOrPost.Pre: UnaryopExpressionWithSideEffect.PreOrPost.Post;
.scale(6); for (final ExpressionContext e: ctx.datatype().expression()) { if (e.getSourceInterval().startsAfter(ctx.datatype().TO().getSourceInterval())) { columnEditor.scale(Integer.valueOf(e.getText()));