public override void EnterForInit(JavaParser.ForInitContext context) { if (IsInCurrentContext(context)) { _associatedTrees.Add(context); } }
public Ust VisitForControl(JavaParser.ForControlContext context) { JavaParser.EnhancedForControlContext forEach = context.enhancedForControl(); if (forEach != null) { // TODO: modifiers var type = (TypeToken)Visit(forEach.typeType()); var varDecId = (IdToken)Visit(forEach.variableDeclaratorId()); var expr = (Expression)Visit(forEach.expression()); var parent = (JavaParser.StatementContext)context.parent; var statement = (Statement)Visit(parent.statement(0)); var result = new ForeachStatement(type, varDecId, expr, statement, parent.GetTextSpan()); return(result); } else { var initializers = new List <Statement>(); var iterators = new List <Expression>(); JavaParser.ForInitContext forInit = context.forInit(); if (forInit != null) { var varDec = forInit.localVariableDeclaration(); if (varDec != null) { var varDecStatement = (VariableDeclarationExpression)Visit(varDec); initializers.Add(new ExpressionStatement(varDecStatement)); } else { initializers.AddRange(forInit.expressionList().expression() .Select(expr => { var ex = (Expression)Visit(expr); return(ex == null ? null : new ExpressionStatement(ex, expr.GetTextSpan())); }).Where(stmt => stmt != null).ToArray()); } } Expression condition = context.expression() == null ? null : (Expression)Visit(context.expression()); JavaParser.ExpressionListContext forUpdate = context.forUpdate; if (forUpdate != null) { iterators.AddRange(forUpdate.expression() .Select(expr => (Expression)Visit(expr)) .Where(iter => iter != null).ToArray()); } var parent = (JavaParser.StatementContext)context.parent; var statement = (Statement)Visit(parent.statement(0)); var result = new ForStatement(initializers, condition, iterators, statement, parent.GetTextSpan()); return(result); } }
public Ust VisitForInit(JavaParser.ForInitContext context) { return(VisitChildren(context)); }