Search in sources :

Example 1 with GStringExpression

use of org.codehaus.groovy.ast.expr.GStringExpression in project groovy by apache.

the class InnerClassVisitorHelper method dynName.

private static Expression dynName(final Parameter p) {
    List<ConstantExpression> gStringStrings = new ArrayList<>();
    gStringStrings.add(new ConstantExpression(""));
    gStringStrings.add(new ConstantExpression(""));
    List<Expression> gStringValues = new ArrayList<>();
    gStringValues.add(varX(p));
    return new GStringExpression("$name", gStringStrings, gStringValues);
}
Also used : SpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression) ConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression) GStringExpression(org.codehaus.groovy.ast.expr.GStringExpression) Expression(org.codehaus.groovy.ast.expr.Expression) ConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression) ArrayList(java.util.ArrayList) GStringExpression(org.codehaus.groovy.ast.expr.GStringExpression)

Example 2 with GStringExpression

use of org.codehaus.groovy.ast.expr.GStringExpression in project groovy by apache.

the class AstBuilder method visitCommandExpression.

@Override
public Expression visitCommandExpression(final CommandExpressionContext ctx) {
    boolean hasArgumentList = asBoolean(ctx.enhancedArgumentListInPar());
    boolean hasCommandArgument = asBoolean(ctx.commandArgument());
    if ((hasArgumentList || hasCommandArgument) && visitingArrayInitializerCount > 0) {
        // SEE http://groovy.329449.n5.nabble.com/parrot-Command-expressions-in-array-initializer-tt5752273.html
        throw createParsingFailedException("Command chain expression can not be used in array initializer", ctx);
    }
    Expression baseExpr = (Expression) this.visit(ctx.expression());
    if ((hasArgumentList || hasCommandArgument) && !isInsideParentheses(baseExpr) && baseExpr instanceof BinaryExpression && !"[".equals(((BinaryExpression) baseExpr).getOperation().getText())) {
        throw createParsingFailedException("Unexpected input: '" + getOriginalText(ctx.expression()) + "'", ctx.expression());
    }
    MethodCallExpression methodCallExpression = null;
    if (hasArgumentList) {
        Expression arguments = this.visitEnhancedArgumentListInPar(ctx.enhancedArgumentListInPar());
        if (baseExpr instanceof PropertyExpression) {
            // e.g. obj.a 1, 2
            methodCallExpression = configureAST(this.createMethodCallExpression((PropertyExpression) baseExpr, arguments), ctx.expression(), arguments);
        } else if (baseExpr instanceof MethodCallExpression && !isInsideParentheses(baseExpr)) {
            // e.g. m {} a, b  OR  m(...) a, b
            if (asBoolean(arguments)) {
                // The error should never be thrown.
                throw new GroovyBugError("When baseExpr is a instance of MethodCallExpression, which should follow NO argumentList");
            }
            methodCallExpression = (MethodCallExpression) baseExpr;
        } else if (!isInsideParentheses(baseExpr) && (// e.g. m 1, 2
        baseExpr instanceof VariableExpression || // e.g. "$m" 1, 2
        baseExpr instanceof GStringExpression || (baseExpr instanceof ConstantExpression && isTrue(baseExpr, IS_STRING)))) {
            // e.g. "m" 1, 2
            validateInvalidMethodDefinition(baseExpr, arguments);
            methodCallExpression = configureAST(this.createMethodCallExpression(baseExpr, arguments), ctx.expression(), arguments);
        } else {
            // e.g. a[x] b, new A() b, etc.
            methodCallExpression = configureAST(this.createCallMethodCallExpression(baseExpr, arguments), ctx.expression(), arguments);
        }
        methodCallExpression.putNodeMetaData(IS_COMMAND_EXPRESSION, Boolean.TRUE);
        if (!hasCommandArgument) {
            return methodCallExpression;
        }
    }
    if (hasCommandArgument) {
        baseExpr.putNodeMetaData(IS_COMMAND_EXPRESSION, Boolean.TRUE);
    }
    return configureAST((Expression) ctx.commandArgument().stream().map(e -> (Object) e).reduce(methodCallExpression != null ? methodCallExpression : baseExpr, (r, e) -> {
        CommandArgumentContext commandArgumentContext = (CommandArgumentContext) e;
        commandArgumentContext.putNodeMetaData(CMD_EXPRESSION_BASE_EXPR, r);
        return this.visitCommandArgument(commandArgumentContext);
    }), ctx);
}
Also used : CastParExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.CastParExpressionContext) SUB(org.apache.groovy.parser.antlr4.GroovyParser.SUB) CastExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.CastExprAltContext) ConditionalExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ConditionalExprAltContext) DEFAULT(org.apache.groovy.parser.antlr4.GroovyParser.DEFAULT) IdentifierContext(org.apache.groovy.parser.antlr4.GroovyParser.IdentifierContext) SEALED(org.apache.groovy.parser.antlr4.GroovyParser.SEALED) QualifiedClassNameListContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedClassNameListContext) ModifierContext(org.apache.groovy.parser.antlr4.GroovyParser.ModifierContext) ElementValuePairsContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValuePairsContext) BlockStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockStatementContext) PathExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.PathExpressionContext) NonSealed(groovy.transform.NonSealed) EnumConstantsContext(org.apache.groovy.parser.antlr4.GroovyParser.EnumConstantsContext) Map(java.util.Map) ListContext(org.apache.groovy.parser.antlr4.GroovyParser.ListContext) Sealed(groovy.transform.Sealed) PropertyNode(org.codehaus.groovy.ast.PropertyNode) Trait(groovy.transform.Trait) TypeNamePairContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeNamePairContext) UnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression) ClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression) Recognizer(org.antlr.v4.runtime.Recognizer) QualifiedNameElementContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedNameElementContext) EnhancedStatementExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedStatementExpressionContext) EmptyDimsContext(org.apache.groovy.parser.antlr4.GroovyParser.EmptyDimsContext) ArgumentListExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression) ClosureOrLambdaExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.ClosureOrLambdaExpressionContext) CommandExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.CommandExpressionContext) CommandExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.CommandExprAltContext) GstringValueContext(org.apache.groovy.parser.antlr4.GroovyParser.GstringValueContext) ArrayInitializerContext(org.apache.groovy.parser.antlr4.GroovyParser.ArrayInitializerContext) MethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression) Stream(java.util.stream.Stream) TernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression) AssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement) DefaultGroovyMethods.asBoolean(org.codehaus.groovy.runtime.DefaultGroovyMethods.asBoolean) IdentifierPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.IdentifierPrmrAltContext) AndExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.AndExprAltContext) DEC(org.apache.groovy.parser.antlr4.GroovyParser.DEC) PropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression) DEF(org.apache.groovy.parser.antlr4.GroovyParser.DEF) GeneralUtils.declS(org.codehaus.groovy.ast.tools.GeneralUtils.declS) VariableDeclaratorIdContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclaratorIdContext) YieldStatementContext(org.apache.groovy.parser.antlr4.GroovyLangParser.YieldStatementContext) LinkedHashMap(java.util.LinkedHashMap) EnhancedForControlContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedForControlContext) PrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression) SystemUtil(org.apache.groovy.util.SystemUtil) ExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement) GeneralUtils.returnS(org.codehaus.groovy.ast.tools.GeneralUtils.returnS) GroovyParserRuleContext(org.apache.groovy.parser.antlr4.GroovyParser.GroovyParserRuleContext) PowerExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.PowerExprAltContext) StandardLambdaExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.StandardLambdaExpressionContext) PostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression) StringUtils(org.apache.groovy.parser.antlr4.util.StringUtils) ElementValuePairContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValuePairContext) Expression(org.codehaus.groovy.ast.expr.Expression) AnnotationNameContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotationNameContext) FINAL(org.apache.groovy.parser.antlr4.GroovyParser.FINAL) Opcodes(org.objectweb.asm.Opcodes) CompileStatic(groovy.transform.CompileStatic) UnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression) SourceUnit(org.codehaus.groovy.control.SourceUnit) ClassNode(org.codehaus.groovy.ast.ClassNode) SwitchExpressionLabelContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchExpressionLabelContext) ForStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ForStmtAltContext) BreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement) GeneralUtils.listX(org.codehaus.groovy.ast.tools.GeneralUtils.listX) GeneralUtils.localVarX(org.codehaus.groovy.ast.tools.GeneralUtils.localVarX) GenericsType(org.codehaus.groovy.ast.GenericsType) IOException(java.io.IOException) PredictionMode(org.antlr.v4.runtime.atn.PredictionMode) ForControlContext(org.apache.groovy.parser.antlr4.GroovyParser.ForControlContext) ReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement) AnnotationConstantExpression(org.codehaus.groovy.ast.expr.AnnotationConstantExpression) VariableModifiersContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableModifiersContext) CompilationUnitContext(org.apache.groovy.parser.antlr4.GroovyParser.CompilationUnitContext) RecognitionException(org.antlr.v4.runtime.RecognitionException) BitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression) TupleConstructor(groovy.transform.TupleConstructor) ANTLRErrorListener(org.antlr.v4.runtime.ANTLRErrorListener) IfElseStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.IfElseStatementContext) MapEntryLabelContext(org.apache.groovy.parser.antlr4.GroovyParser.MapEntryLabelContext) AS(org.apache.groovy.parser.antlr4.GroovyParser.AS) EqualityExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.EqualityExprAltContext) GeneralUtils.stmt(org.codehaus.groovy.ast.tools.GeneralUtils.stmt) Interval(org.antlr.v4.runtime.misc.Interval) IntegerLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.IntegerLiteralAltContext) MapExpression(org.codehaus.groovy.ast.expr.MapExpression) TypeArgumentsContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeArgumentsContext) CompilePhase(org.codehaus.groovy.control.CompilePhase) TokenStream(org.antlr.v4.runtime.TokenStream) AtnManager(org.apache.groovy.parser.antlr4.internal.atnmanager.AtnManager) ExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionContext) ConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression) ClosureUtils(org.codehaus.groovy.ast.tools.ClosureUtils) ModuleNode(org.codehaus.groovy.ast.ModuleNode) LogicalAndExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LogicalAndExprAltContext) FormalParameterContext(org.apache.groovy.parser.antlr4.GroovyParser.FormalParameterContext) EnumConstantClassNode(org.codehaus.groovy.ast.EnumConstantClassNode) BlockContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockContext) Numbers(org.codehaus.groovy.syntax.Numbers) SwitchLabelContext(org.apache.groovy.parser.antlr4.GroovyParser.SwitchLabelContext) BreakStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.BreakStatementContext) BuiltInTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.BuiltInTypeContext) MethodNameContext(org.apache.groovy.parser.antlr4.GroovyParser.MethodNameContext) CreatorContext(org.apache.groovy.parser.antlr4.GroovyParser.CreatorContext) ForStatement(org.codehaus.groovy.ast.stmt.ForStatement) INC(org.apache.groovy.parser.antlr4.GroovyParser.INC) LabeledStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LabeledStmtAltContext) MethodDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.MethodDeclarationContext) ScriptStatementsContext(org.apache.groovy.parser.antlr4.GroovyParser.ScriptStatementsContext) NamedPropertyArgsContext(org.apache.groovy.parser.antlr4.GroovyParser.NamedPropertyArgsContext) ExclusiveOrExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ExclusiveOrExprAltContext) Types(org.codehaus.groovy.syntax.Types) GeneralUtils.closureX(org.codehaus.groovy.ast.tools.GeneralUtils.closureX) DefaultGroovyMethods(org.codehaus.groovy.runtime.DefaultGroovyMethods) ThisPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ThisPrmrAltContext) SwitchBlockStatementGroupContext(org.apache.groovy.parser.antlr4.GroovyParser.SwitchBlockStatementGroupContext) StringGroovyMethods(org.codehaus.groovy.runtime.StringGroovyMethods) Collectors(java.util.stream.Collectors) NotExpression(org.codehaus.groovy.ast.expr.NotExpression) PrimitiveTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.PrimitiveTypeContext) InnerClassNode(org.codehaus.groovy.ast.InnerClassNode) Objects(java.util.Objects) ARROW(org.apache.groovy.parser.antlr4.GroovyLangParser.ARROW) IfStatement(org.codehaus.groovy.ast.stmt.IfStatement) MapContext(org.apache.groovy.parser.antlr4.GroovyParser.MapContext) NewPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.NewPrmrAltContext) EnhancedArgumentListInParContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedArgumentListInParContext) ForUpdateContext(org.apache.groovy.parser.antlr4.GroovyParser.ForUpdateContext) RegexExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.RegexExprAltContext) INSTANCEOF(org.apache.groovy.parser.antlr4.GroovyParser.INSTANCEOF) AnnotationNode(org.codehaus.groovy.ast.AnnotationNode) VariableDeclaratorContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclaratorContext) CompactConstructorDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.CompactConstructorDeclarationContext) TypeArgumentsOrDiamondContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeArgumentsOrDiamondContext) Verifier(org.codehaus.groovy.classgen.Verifier) ContinueStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.ContinueStatementContext) Maps(org.apache.groovy.util.Maps) Tuple2(groovy.lang.Tuple2) NOT_IN(org.apache.groovy.parser.antlr4.GroovyParser.NOT_IN) Tuple3(groovy.lang.Tuple3) ThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement) VariableNamesContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableNamesContext) GeneralUtils.varX(org.codehaus.groovy.ast.tools.GeneralUtils.varX) EmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression) LinkedList(java.util.LinkedList) AnnotationContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotationContext) GstringContext(org.apache.groovy.parser.antlr4.GroovyParser.GstringContext) ConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression) DynamicMemberNameContext(org.apache.groovy.parser.antlr4.GroovyParser.DynamicMemberNameContext) MapEntryContext(org.apache.groovy.parser.antlr4.GroovyParser.MapEntryContext) StatementContext(org.apache.groovy.parser.antlr4.GroovyParser.StatementContext) DoWhileStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.DoWhileStmtAltContext) ClassHelper(org.codehaus.groovy.ast.ClassHelper) GeneralUtils.cloneParams(org.codehaus.groovy.ast.tools.GeneralUtils.cloneParams) ShiftExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ShiftExprAltContext) ClassBodyDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassBodyDeclarationContext) DescriptiveErrorStrategy(org.apache.groovy.parser.antlr4.internal.DescriptiveErrorStrategy) TypeUtil.isPrimitiveType(org.codehaus.groovy.classgen.asm.util.TypeUtil.isPrimitiveType) SynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement) ClassExpression(org.codehaus.groovy.ast.expr.ClassExpression) ReturnTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.ReturnTypeContext) ASTNode(org.codehaus.groovy.ast.ASTNode) TupleExpression(org.codehaus.groovy.ast.expr.TupleExpression) NonWildcardTypeArgumentsContext(org.apache.groovy.parser.antlr4.GroovyParser.NonWildcardTypeArgumentsContext) ThisFormalParameterContext(org.apache.groovy.parser.antlr4.GroovyParser.ThisFormalParameterContext) TryCatchStatement(org.codehaus.groovy.ast.stmt.TryCatchStatement) RANGE_EXCLUSIVE_RIGHT(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_EXCLUSIVE_RIGHT) MethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression) BooleanLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.BooleanLiteralAltContext) ConstructorNode(org.codehaus.groovy.ast.ConstructorNode) MapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression) ClassOrInterfaceModifierContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceModifierContext) SyntaxException(org.codehaus.groovy.syntax.SyntaxException) PRIVATE(org.apache.groovy.parser.antlr4.GroovyParser.PRIVATE) InclusiveOrExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.InclusiveOrExprAltContext) ElementValueArrayInitializerContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValueArrayInitializerContext) Arrays(java.util.Arrays) Token(org.antlr.v4.runtime.Token) CharStreams(org.antlr.v4.runtime.CharStreams) NamePartContext(org.apache.groovy.parser.antlr4.GroovyParser.NamePartContext) GE(org.apache.groovy.parser.antlr4.GroovyParser.GE) EnumConstantContext(org.apache.groovy.parser.antlr4.GroovyParser.EnumConstantContext) LocalVariableDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.LocalVariableDeclarationContext) ClassBodyContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassBodyContext) MethodBodyContext(org.apache.groovy.parser.antlr4.GroovyParser.MethodBodyContext) WhileStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.WhileStmtAltContext) CaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement) CommandArgumentContext(org.apache.groovy.parser.antlr4.GroovyParser.CommandArgumentContext) CreatedNameContext(org.apache.groovy.parser.antlr4.GroovyParser.CreatedNameContext) NOT_INSTANCEOF(org.apache.groovy.parser.antlr4.GroovyParser.NOT_INSTANCEOF) IndexPropertyArgsContext(org.apache.groovy.parser.antlr4.GroovyParser.IndexPropertyArgsContext) TypeBoundContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeBoundContext) GT(org.apache.groovy.parser.antlr4.GroovyParser.GT) ParExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.ParExpressionContext) ClosureContext(org.apache.groovy.parser.antlr4.GroovyParser.ClosureContext) VariableExpression(org.codehaus.groovy.ast.expr.VariableExpression) PackageNode(org.codehaus.groovy.ast.PackageNode) ModifierNode(org.codehaus.groovy.ast.ModifierNode) AnnotatedNodeUtils(org.apache.groovy.ast.tools.AnnotatedNodeUtils) ConditionalStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.ConditionalStatementContext) EnhancedArgumentListElementContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedArgumentListElementContext) AssertStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.AssertStatementContext) ClassHelper.isPrimitiveVoid(org.codehaus.groovy.ast.ClassHelper.isPrimitiveVoid) NON_SEALED(org.apache.groovy.parser.antlr4.GroovyParser.NON_SEALED) GeneralUtils.callX(org.codehaus.groovy.ast.tools.GeneralUtils.callX) TerminalNode(org.antlr.v4.runtime.tree.TerminalNode) PositionConfigureUtils.configureAST(org.apache.groovy.parser.antlr4.util.PositionConfigureUtils.configureAST) SwitchExpressionContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchExpressionContext) CompilationFailedException(org.codehaus.groovy.control.CompilationFailedException) AnnotationsOptContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotationsOptContext) CastExpression(org.codehaus.groovy.ast.expr.CastExpression) ParserRuleContext(org.antlr.v4.runtime.ParserRuleContext) RelationalExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.RelationalExprAltContext) BooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression) BlockStatementsOptContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockStatementsOptContext) ImportDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.ImportDeclarationContext) ThrowStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ThrowStmtAltContext) FieldDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.FieldDeclarationContext) FinallyBlockContext(org.apache.groovy.parser.antlr4.GroovyParser.FinallyBlockContext) StandardLambdaParametersContext(org.apache.groovy.parser.antlr4.GroovyParser.StandardLambdaParametersContext) LambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression) LoopStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LoopStmtAltContext) WhileStatement(org.codehaus.groovy.ast.stmt.WhileStatement) ArrayList(java.util.ArrayList) StringLiteralContext(org.apache.groovy.parser.antlr4.GroovyParser.StringLiteralContext) CharStream(org.antlr.v4.runtime.CharStream) EmptyDimsOptContext(org.apache.groovy.parser.antlr4.GroovyParser.EmptyDimsOptContext) MethodNode(org.codehaus.groovy.ast.MethodNode) NullLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.NullLiteralAltContext) CatchClauseContext(org.apache.groovy.parser.antlr4.GroovyParser.CatchClauseContext) ClassDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassDeclarationContext) ParseTree(org.antlr.v4.runtime.tree.ParseTree) VariableInitializerContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableInitializerContext) MultipleAssignmentExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.MultipleAssignmentExprAltContext) RANGE_EXCLUSIVE_FULL(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_EXCLUSIVE_FULL) Parameter(org.codehaus.groovy.ast.Parameter) VariableInitializersContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableInitializersContext) FloatingPointLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.FloatingPointLiteralAltContext) SwitchExprAltContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchExprAltContext) VAR(org.apache.groovy.parser.antlr4.GroovyParser.VAR) ClassOrInterfaceModifiersContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceModifiersContext) IN(org.apache.groovy.parser.antlr4.GroovyParser.IN) ExpressionListContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionListContext) EmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement) TypeDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeDeclarationContext) ElementValuesContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValuesContext) PackageDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.PackageDeclarationContext) GStringExpression(org.codehaus.groovy.ast.expr.GStringExpression) BufferedReader(java.io.BufferedReader) ArrayDeque(java.util.ArrayDeque) DefaultGroovyMethods.last(org.codehaus.groovy.runtime.DefaultGroovyMethods.last) ResourceContext(org.apache.groovy.parser.antlr4.GroovyParser.ResourceContext) ListExpression(org.codehaus.groovy.ast.expr.ListExpression) SAFE_INDEX(org.apache.groovy.parser.antlr4.GroovyParser.SAFE_INDEX) TryCatchStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.TryCatchStatementContext) SynchronizedStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.SynchronizedStmtAltContext) MapEntryListContext(org.apache.groovy.parser.antlr4.GroovyParser.MapEntryListContext) ElementValueContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValueContext) VariableDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclarationContext) CommonTokenStream(org.antlr.v4.runtime.CommonTokenStream) ClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassNameContext) TypeListContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeListContext) CatchTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.CatchTypeContext) RangeExpression(org.codehaus.groovy.ast.expr.RangeExpression) UnaryNotExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.UnaryNotExprAltContext) GeneralUtils.assignX(org.codehaus.groovy.ast.tools.GeneralUtils.assignX) ModifiersOptContext(org.apache.groovy.parser.antlr4.GroovyParser.ModifiersOptContext) NamedArgumentListExpression(org.codehaus.groovy.ast.expr.NamedArgumentListExpression) VariableModifierContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableModifierContext) SwitchBlockStatementExpressionGroupContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchBlockStatementExpressionGroupContext) PathElementContext(org.apache.groovy.parser.antlr4.GroovyParser.PathElementContext) UnaryAddExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.UnaryAddExprAltContext) TypeNamePairsContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeNamePairsContext) AnnotatedQualifiedClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotatedQualifiedClassNameContext) SpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression) AnonymousInnerClassDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.AnonymousInnerClassDeclarationContext) ForInitContext(org.apache.groovy.parser.antlr4.GroovyParser.ForInitContext) VariableModifiersOptContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableModifiersOptContext) ArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression) MultiplicativeExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.MultiplicativeExprAltContext) SyntaxErrorMessage(org.codehaus.groovy.control.messages.SyntaxErrorMessage) AssignmentExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.AssignmentExprAltContext) CatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement) TypeArgumentContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeArgumentContext) VariableDeclaratorsContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclaratorsContext) TypeParameterContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeParameterContext) GroovyBugError(org.codehaus.groovy.GroovyBugError) ReturnStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ReturnStmtAltContext) List(java.util.List) BinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression) TypeParametersContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeParametersContext) ArgumentsContext(org.apache.groovy.parser.antlr4.GroovyParser.ArgumentsContext) BlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement) LE(org.apache.groovy.parser.antlr4.GroovyParser.LE) BlockStatementsContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockStatementsContext) Optional(java.util.Optional) GstringPathContext(org.apache.groovy.parser.antlr4.GroovyParser.GstringPathContext) QualifiedStandardClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedStandardClassNameContext) KeywordsContext(org.apache.groovy.parser.antlr4.GroovyParser.KeywordsContext) AdditiveExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.AdditiveExprAltContext) NodeMetaDataHandler(org.codehaus.groovy.ast.NodeMetaDataHandler) ClassicalForControlContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassicalForControlContext) Statement(org.codehaus.groovy.ast.stmt.Statement) ParseCancellationException(org.antlr.v4.runtime.misc.ParseCancellationException) CodeVisitorSupport(org.codehaus.groovy.ast.CodeVisitorSupport) ElvisOperatorExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression) STATIC(org.apache.groovy.parser.antlr4.GroovyParser.STATIC) LT(org.apache.groovy.parser.antlr4.GroovyParser.LT) Deque(java.util.Deque) ResourceListContext(org.apache.groovy.parser.antlr4.GroovyParser.ResourceListContext) SwitchStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.SwitchStatementContext) SuperPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.SuperPrmrAltContext) EnumHelper(org.codehaus.groovy.antlr.EnumHelper) FormalParametersContext(org.apache.groovy.parser.antlr4.GroovyParser.FormalParametersContext) MethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression) DoWhileStatement(org.codehaus.groovy.ast.stmt.DoWhileStatement) ExpressionListElementContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionListElementContext) LambdaBodyContext(org.apache.groovy.parser.antlr4.GroovyParser.LambdaBodyContext) ContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement) QualifiedNameContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedNameContext) SpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression) ResourcesContext(org.apache.groovy.parser.antlr4.GroovyParser.ResourcesContext) YieldStmtAltContext(org.apache.groovy.parser.antlr4.GroovyLangParser.YieldStmtAltContext) ADD(org.apache.groovy.parser.antlr4.GroovyParser.ADD) PostfixExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.PostfixExpressionContext) Iterator(java.util.Iterator) CASE(org.apache.groovy.parser.antlr4.GroovyParser.CASE) ExpressionInParContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionInParContext) DimContext(org.apache.groovy.parser.antlr4.GroovyParser.DimContext) DeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression) ClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression) TypeContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeContext) SwitchStatement(org.codehaus.groovy.ast.stmt.SwitchStatement) FormalParameterListContext(org.apache.groovy.parser.antlr4.GroovyParser.FormalParameterListContext) ImportNode(org.codehaus.groovy.ast.ImportNode) QualifiedClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedClassNameContext) LogicalOrExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LogicalOrExprAltContext) FieldNode(org.codehaus.groovy.ast.FieldNode) AttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression) RANGE_INCLUSIVE(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_INCLUSIVE) ClassOrInterfaceTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceTypeContext) Tuple.tuple(groovy.lang.Tuple.tuple) RANGE_EXCLUSIVE_LEFT(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_EXCLUSIVE_LEFT) ClassOrInterfaceModifiersOptContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceModifiersOptContext) MemberDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.MemberDeclarationContext) Collections(java.util.Collections) ModifiersContext(org.apache.groovy.parser.antlr4.GroovyParser.ModifiersContext) BinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression) MethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression) UnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression) ClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression) ArgumentListExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression) MethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression) TernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression) PropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression) PrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression) PostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression) Expression(org.codehaus.groovy.ast.expr.Expression) UnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression) AnnotationConstantExpression(org.codehaus.groovy.ast.expr.AnnotationConstantExpression) BitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression) MapExpression(org.codehaus.groovy.ast.expr.MapExpression) ConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression) NotExpression(org.codehaus.groovy.ast.expr.NotExpression) EmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression) ConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression) ClassExpression(org.codehaus.groovy.ast.expr.ClassExpression) TupleExpression(org.codehaus.groovy.ast.expr.TupleExpression) MethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression) MapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression) VariableExpression(org.codehaus.groovy.ast.expr.VariableExpression) CastExpression(org.codehaus.groovy.ast.expr.CastExpression) BooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression) LambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression) GStringExpression(org.codehaus.groovy.ast.expr.GStringExpression) ListExpression(org.codehaus.groovy.ast.expr.ListExpression) RangeExpression(org.codehaus.groovy.ast.expr.RangeExpression) NamedArgumentListExpression(org.codehaus.groovy.ast.expr.NamedArgumentListExpression) SpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression) ArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression) BinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression) ElvisOperatorExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression) MethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression) SpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression) DeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression) ClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression) AttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression) AnnotationConstantExpression(org.codehaus.groovy.ast.expr.AnnotationConstantExpression) ConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression) CommandArgumentContext(org.apache.groovy.parser.antlr4.GroovyParser.CommandArgumentContext) GroovyBugError(org.codehaus.groovy.GroovyBugError) PropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression) VariableExpression(org.codehaus.groovy.ast.expr.VariableExpression) GStringExpression(org.codehaus.groovy.ast.expr.GStringExpression)

Example 3 with GStringExpression

use of org.codehaus.groovy.ast.expr.GStringExpression in project groovy by apache.

the class AstBuilder method visitGstring.

// } literal ---------------------------------------------------------------
// gstring { ---------------------------------------------------------------
@Override
public GStringExpression visitGstring(final GstringContext ctx) {
    final List<ConstantExpression> stringLiteralList = new LinkedList<>();
    final String begin = ctx.GStringBegin().getText();
    final String beginQuotation = beginQuotation(begin);
    stringLiteralList.add(configureAST(new ConstantExpression(parseGStringBegin(ctx, beginQuotation)), ctx.GStringBegin()));
    List<ConstantExpression> partStrings = ctx.GStringPart().stream().map(e -> configureAST(new ConstantExpression(parseGStringPart(e, beginQuotation)), e)).collect(Collectors.toList());
    stringLiteralList.addAll(partStrings);
    stringLiteralList.add(configureAST(new ConstantExpression(parseGStringEnd(ctx, beginQuotation)), ctx.GStringEnd()));
    List<Expression> values = ctx.gstringValue().stream().map(this::visitGstringValue).collect(Collectors.toList());
    StringBuilder verbatimText = new StringBuilder(ctx.getText().length());
    for (int i = 0, n = stringLiteralList.size(), s = values.size(); i < n; i += 1) {
        verbatimText.append(stringLiteralList.get(i).getValue());
        if (i == s) {
            continue;
        }
        Expression value = values.get(i);
        if (!asBoolean(value)) {
            continue;
        }
        boolean isVariableExpression = value instanceof VariableExpression;
        verbatimText.append(DOLLAR_STR);
        if (!isVariableExpression)
            verbatimText.append('{');
        verbatimText.append(value.getText());
        if (!isVariableExpression)
            verbatimText.append('}');
    }
    return configureAST(new GStringExpression(verbatimText.toString(), stringLiteralList, values), ctx);
}
Also used : CastParExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.CastParExpressionContext) SUB(org.apache.groovy.parser.antlr4.GroovyParser.SUB) CastExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.CastExprAltContext) ConditionalExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ConditionalExprAltContext) DEFAULT(org.apache.groovy.parser.antlr4.GroovyParser.DEFAULT) IdentifierContext(org.apache.groovy.parser.antlr4.GroovyParser.IdentifierContext) SEALED(org.apache.groovy.parser.antlr4.GroovyParser.SEALED) QualifiedClassNameListContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedClassNameListContext) ModifierContext(org.apache.groovy.parser.antlr4.GroovyParser.ModifierContext) ElementValuePairsContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValuePairsContext) BlockStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockStatementContext) PathExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.PathExpressionContext) NonSealed(groovy.transform.NonSealed) EnumConstantsContext(org.apache.groovy.parser.antlr4.GroovyParser.EnumConstantsContext) Map(java.util.Map) ListContext(org.apache.groovy.parser.antlr4.GroovyParser.ListContext) Sealed(groovy.transform.Sealed) PropertyNode(org.codehaus.groovy.ast.PropertyNode) Trait(groovy.transform.Trait) TypeNamePairContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeNamePairContext) UnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression) ClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression) Recognizer(org.antlr.v4.runtime.Recognizer) QualifiedNameElementContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedNameElementContext) EnhancedStatementExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedStatementExpressionContext) EmptyDimsContext(org.apache.groovy.parser.antlr4.GroovyParser.EmptyDimsContext) ArgumentListExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression) ClosureOrLambdaExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.ClosureOrLambdaExpressionContext) CommandExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.CommandExpressionContext) CommandExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.CommandExprAltContext) GstringValueContext(org.apache.groovy.parser.antlr4.GroovyParser.GstringValueContext) ArrayInitializerContext(org.apache.groovy.parser.antlr4.GroovyParser.ArrayInitializerContext) MethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression) Stream(java.util.stream.Stream) TernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression) AssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement) DefaultGroovyMethods.asBoolean(org.codehaus.groovy.runtime.DefaultGroovyMethods.asBoolean) IdentifierPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.IdentifierPrmrAltContext) AndExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.AndExprAltContext) DEC(org.apache.groovy.parser.antlr4.GroovyParser.DEC) PropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression) DEF(org.apache.groovy.parser.antlr4.GroovyParser.DEF) GeneralUtils.declS(org.codehaus.groovy.ast.tools.GeneralUtils.declS) VariableDeclaratorIdContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclaratorIdContext) YieldStatementContext(org.apache.groovy.parser.antlr4.GroovyLangParser.YieldStatementContext) LinkedHashMap(java.util.LinkedHashMap) EnhancedForControlContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedForControlContext) PrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression) SystemUtil(org.apache.groovy.util.SystemUtil) ExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement) GeneralUtils.returnS(org.codehaus.groovy.ast.tools.GeneralUtils.returnS) GroovyParserRuleContext(org.apache.groovy.parser.antlr4.GroovyParser.GroovyParserRuleContext) PowerExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.PowerExprAltContext) StandardLambdaExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.StandardLambdaExpressionContext) PostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression) StringUtils(org.apache.groovy.parser.antlr4.util.StringUtils) ElementValuePairContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValuePairContext) Expression(org.codehaus.groovy.ast.expr.Expression) AnnotationNameContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotationNameContext) FINAL(org.apache.groovy.parser.antlr4.GroovyParser.FINAL) Opcodes(org.objectweb.asm.Opcodes) CompileStatic(groovy.transform.CompileStatic) UnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression) SourceUnit(org.codehaus.groovy.control.SourceUnit) ClassNode(org.codehaus.groovy.ast.ClassNode) SwitchExpressionLabelContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchExpressionLabelContext) ForStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ForStmtAltContext) BreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement) GeneralUtils.listX(org.codehaus.groovy.ast.tools.GeneralUtils.listX) GeneralUtils.localVarX(org.codehaus.groovy.ast.tools.GeneralUtils.localVarX) GenericsType(org.codehaus.groovy.ast.GenericsType) IOException(java.io.IOException) PredictionMode(org.antlr.v4.runtime.atn.PredictionMode) ForControlContext(org.apache.groovy.parser.antlr4.GroovyParser.ForControlContext) ReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement) AnnotationConstantExpression(org.codehaus.groovy.ast.expr.AnnotationConstantExpression) VariableModifiersContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableModifiersContext) CompilationUnitContext(org.apache.groovy.parser.antlr4.GroovyParser.CompilationUnitContext) RecognitionException(org.antlr.v4.runtime.RecognitionException) BitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression) TupleConstructor(groovy.transform.TupleConstructor) ANTLRErrorListener(org.antlr.v4.runtime.ANTLRErrorListener) IfElseStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.IfElseStatementContext) MapEntryLabelContext(org.apache.groovy.parser.antlr4.GroovyParser.MapEntryLabelContext) AS(org.apache.groovy.parser.antlr4.GroovyParser.AS) EqualityExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.EqualityExprAltContext) GeneralUtils.stmt(org.codehaus.groovy.ast.tools.GeneralUtils.stmt) Interval(org.antlr.v4.runtime.misc.Interval) IntegerLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.IntegerLiteralAltContext) MapExpression(org.codehaus.groovy.ast.expr.MapExpression) TypeArgumentsContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeArgumentsContext) CompilePhase(org.codehaus.groovy.control.CompilePhase) TokenStream(org.antlr.v4.runtime.TokenStream) AtnManager(org.apache.groovy.parser.antlr4.internal.atnmanager.AtnManager) ExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionContext) ConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression) ClosureUtils(org.codehaus.groovy.ast.tools.ClosureUtils) ModuleNode(org.codehaus.groovy.ast.ModuleNode) LogicalAndExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LogicalAndExprAltContext) FormalParameterContext(org.apache.groovy.parser.antlr4.GroovyParser.FormalParameterContext) EnumConstantClassNode(org.codehaus.groovy.ast.EnumConstantClassNode) BlockContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockContext) Numbers(org.codehaus.groovy.syntax.Numbers) SwitchLabelContext(org.apache.groovy.parser.antlr4.GroovyParser.SwitchLabelContext) BreakStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.BreakStatementContext) BuiltInTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.BuiltInTypeContext) MethodNameContext(org.apache.groovy.parser.antlr4.GroovyParser.MethodNameContext) CreatorContext(org.apache.groovy.parser.antlr4.GroovyParser.CreatorContext) ForStatement(org.codehaus.groovy.ast.stmt.ForStatement) INC(org.apache.groovy.parser.antlr4.GroovyParser.INC) LabeledStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LabeledStmtAltContext) MethodDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.MethodDeclarationContext) ScriptStatementsContext(org.apache.groovy.parser.antlr4.GroovyParser.ScriptStatementsContext) NamedPropertyArgsContext(org.apache.groovy.parser.antlr4.GroovyParser.NamedPropertyArgsContext) ExclusiveOrExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ExclusiveOrExprAltContext) Types(org.codehaus.groovy.syntax.Types) GeneralUtils.closureX(org.codehaus.groovy.ast.tools.GeneralUtils.closureX) DefaultGroovyMethods(org.codehaus.groovy.runtime.DefaultGroovyMethods) ThisPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ThisPrmrAltContext) SwitchBlockStatementGroupContext(org.apache.groovy.parser.antlr4.GroovyParser.SwitchBlockStatementGroupContext) StringGroovyMethods(org.codehaus.groovy.runtime.StringGroovyMethods) Collectors(java.util.stream.Collectors) NotExpression(org.codehaus.groovy.ast.expr.NotExpression) PrimitiveTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.PrimitiveTypeContext) InnerClassNode(org.codehaus.groovy.ast.InnerClassNode) Objects(java.util.Objects) ARROW(org.apache.groovy.parser.antlr4.GroovyLangParser.ARROW) IfStatement(org.codehaus.groovy.ast.stmt.IfStatement) MapContext(org.apache.groovy.parser.antlr4.GroovyParser.MapContext) NewPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.NewPrmrAltContext) EnhancedArgumentListInParContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedArgumentListInParContext) ForUpdateContext(org.apache.groovy.parser.antlr4.GroovyParser.ForUpdateContext) RegexExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.RegexExprAltContext) INSTANCEOF(org.apache.groovy.parser.antlr4.GroovyParser.INSTANCEOF) AnnotationNode(org.codehaus.groovy.ast.AnnotationNode) VariableDeclaratorContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclaratorContext) CompactConstructorDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.CompactConstructorDeclarationContext) TypeArgumentsOrDiamondContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeArgumentsOrDiamondContext) Verifier(org.codehaus.groovy.classgen.Verifier) ContinueStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.ContinueStatementContext) Maps(org.apache.groovy.util.Maps) Tuple2(groovy.lang.Tuple2) NOT_IN(org.apache.groovy.parser.antlr4.GroovyParser.NOT_IN) Tuple3(groovy.lang.Tuple3) ThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement) VariableNamesContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableNamesContext) GeneralUtils.varX(org.codehaus.groovy.ast.tools.GeneralUtils.varX) EmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression) LinkedList(java.util.LinkedList) AnnotationContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotationContext) GstringContext(org.apache.groovy.parser.antlr4.GroovyParser.GstringContext) ConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression) DynamicMemberNameContext(org.apache.groovy.parser.antlr4.GroovyParser.DynamicMemberNameContext) MapEntryContext(org.apache.groovy.parser.antlr4.GroovyParser.MapEntryContext) StatementContext(org.apache.groovy.parser.antlr4.GroovyParser.StatementContext) DoWhileStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.DoWhileStmtAltContext) ClassHelper(org.codehaus.groovy.ast.ClassHelper) GeneralUtils.cloneParams(org.codehaus.groovy.ast.tools.GeneralUtils.cloneParams) ShiftExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ShiftExprAltContext) ClassBodyDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassBodyDeclarationContext) DescriptiveErrorStrategy(org.apache.groovy.parser.antlr4.internal.DescriptiveErrorStrategy) TypeUtil.isPrimitiveType(org.codehaus.groovy.classgen.asm.util.TypeUtil.isPrimitiveType) SynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement) ClassExpression(org.codehaus.groovy.ast.expr.ClassExpression) ReturnTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.ReturnTypeContext) ASTNode(org.codehaus.groovy.ast.ASTNode) TupleExpression(org.codehaus.groovy.ast.expr.TupleExpression) NonWildcardTypeArgumentsContext(org.apache.groovy.parser.antlr4.GroovyParser.NonWildcardTypeArgumentsContext) ThisFormalParameterContext(org.apache.groovy.parser.antlr4.GroovyParser.ThisFormalParameterContext) TryCatchStatement(org.codehaus.groovy.ast.stmt.TryCatchStatement) RANGE_EXCLUSIVE_RIGHT(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_EXCLUSIVE_RIGHT) MethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression) BooleanLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.BooleanLiteralAltContext) ConstructorNode(org.codehaus.groovy.ast.ConstructorNode) MapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression) ClassOrInterfaceModifierContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceModifierContext) SyntaxException(org.codehaus.groovy.syntax.SyntaxException) PRIVATE(org.apache.groovy.parser.antlr4.GroovyParser.PRIVATE) InclusiveOrExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.InclusiveOrExprAltContext) ElementValueArrayInitializerContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValueArrayInitializerContext) Arrays(java.util.Arrays) Token(org.antlr.v4.runtime.Token) CharStreams(org.antlr.v4.runtime.CharStreams) NamePartContext(org.apache.groovy.parser.antlr4.GroovyParser.NamePartContext) GE(org.apache.groovy.parser.antlr4.GroovyParser.GE) EnumConstantContext(org.apache.groovy.parser.antlr4.GroovyParser.EnumConstantContext) LocalVariableDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.LocalVariableDeclarationContext) ClassBodyContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassBodyContext) MethodBodyContext(org.apache.groovy.parser.antlr4.GroovyParser.MethodBodyContext) WhileStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.WhileStmtAltContext) CaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement) CommandArgumentContext(org.apache.groovy.parser.antlr4.GroovyParser.CommandArgumentContext) CreatedNameContext(org.apache.groovy.parser.antlr4.GroovyParser.CreatedNameContext) NOT_INSTANCEOF(org.apache.groovy.parser.antlr4.GroovyParser.NOT_INSTANCEOF) IndexPropertyArgsContext(org.apache.groovy.parser.antlr4.GroovyParser.IndexPropertyArgsContext) TypeBoundContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeBoundContext) GT(org.apache.groovy.parser.antlr4.GroovyParser.GT) ParExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.ParExpressionContext) ClosureContext(org.apache.groovy.parser.antlr4.GroovyParser.ClosureContext) VariableExpression(org.codehaus.groovy.ast.expr.VariableExpression) PackageNode(org.codehaus.groovy.ast.PackageNode) ModifierNode(org.codehaus.groovy.ast.ModifierNode) AnnotatedNodeUtils(org.apache.groovy.ast.tools.AnnotatedNodeUtils) ConditionalStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.ConditionalStatementContext) EnhancedArgumentListElementContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedArgumentListElementContext) AssertStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.AssertStatementContext) ClassHelper.isPrimitiveVoid(org.codehaus.groovy.ast.ClassHelper.isPrimitiveVoid) NON_SEALED(org.apache.groovy.parser.antlr4.GroovyParser.NON_SEALED) GeneralUtils.callX(org.codehaus.groovy.ast.tools.GeneralUtils.callX) TerminalNode(org.antlr.v4.runtime.tree.TerminalNode) PositionConfigureUtils.configureAST(org.apache.groovy.parser.antlr4.util.PositionConfigureUtils.configureAST) SwitchExpressionContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchExpressionContext) CompilationFailedException(org.codehaus.groovy.control.CompilationFailedException) AnnotationsOptContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotationsOptContext) CastExpression(org.codehaus.groovy.ast.expr.CastExpression) ParserRuleContext(org.antlr.v4.runtime.ParserRuleContext) RelationalExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.RelationalExprAltContext) BooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression) BlockStatementsOptContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockStatementsOptContext) ImportDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.ImportDeclarationContext) ThrowStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ThrowStmtAltContext) FieldDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.FieldDeclarationContext) FinallyBlockContext(org.apache.groovy.parser.antlr4.GroovyParser.FinallyBlockContext) StandardLambdaParametersContext(org.apache.groovy.parser.antlr4.GroovyParser.StandardLambdaParametersContext) LambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression) LoopStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LoopStmtAltContext) WhileStatement(org.codehaus.groovy.ast.stmt.WhileStatement) ArrayList(java.util.ArrayList) StringLiteralContext(org.apache.groovy.parser.antlr4.GroovyParser.StringLiteralContext) CharStream(org.antlr.v4.runtime.CharStream) EmptyDimsOptContext(org.apache.groovy.parser.antlr4.GroovyParser.EmptyDimsOptContext) MethodNode(org.codehaus.groovy.ast.MethodNode) NullLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.NullLiteralAltContext) CatchClauseContext(org.apache.groovy.parser.antlr4.GroovyParser.CatchClauseContext) ClassDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassDeclarationContext) ParseTree(org.antlr.v4.runtime.tree.ParseTree) VariableInitializerContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableInitializerContext) MultipleAssignmentExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.MultipleAssignmentExprAltContext) RANGE_EXCLUSIVE_FULL(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_EXCLUSIVE_FULL) Parameter(org.codehaus.groovy.ast.Parameter) VariableInitializersContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableInitializersContext) FloatingPointLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.FloatingPointLiteralAltContext) SwitchExprAltContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchExprAltContext) VAR(org.apache.groovy.parser.antlr4.GroovyParser.VAR) ClassOrInterfaceModifiersContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceModifiersContext) IN(org.apache.groovy.parser.antlr4.GroovyParser.IN) ExpressionListContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionListContext) EmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement) TypeDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeDeclarationContext) ElementValuesContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValuesContext) PackageDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.PackageDeclarationContext) GStringExpression(org.codehaus.groovy.ast.expr.GStringExpression) BufferedReader(java.io.BufferedReader) ArrayDeque(java.util.ArrayDeque) DefaultGroovyMethods.last(org.codehaus.groovy.runtime.DefaultGroovyMethods.last) ResourceContext(org.apache.groovy.parser.antlr4.GroovyParser.ResourceContext) ListExpression(org.codehaus.groovy.ast.expr.ListExpression) SAFE_INDEX(org.apache.groovy.parser.antlr4.GroovyParser.SAFE_INDEX) TryCatchStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.TryCatchStatementContext) SynchronizedStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.SynchronizedStmtAltContext) MapEntryListContext(org.apache.groovy.parser.antlr4.GroovyParser.MapEntryListContext) ElementValueContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValueContext) VariableDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclarationContext) CommonTokenStream(org.antlr.v4.runtime.CommonTokenStream) ClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassNameContext) TypeListContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeListContext) CatchTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.CatchTypeContext) RangeExpression(org.codehaus.groovy.ast.expr.RangeExpression) UnaryNotExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.UnaryNotExprAltContext) GeneralUtils.assignX(org.codehaus.groovy.ast.tools.GeneralUtils.assignX) ModifiersOptContext(org.apache.groovy.parser.antlr4.GroovyParser.ModifiersOptContext) NamedArgumentListExpression(org.codehaus.groovy.ast.expr.NamedArgumentListExpression) VariableModifierContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableModifierContext) SwitchBlockStatementExpressionGroupContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchBlockStatementExpressionGroupContext) PathElementContext(org.apache.groovy.parser.antlr4.GroovyParser.PathElementContext) UnaryAddExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.UnaryAddExprAltContext) TypeNamePairsContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeNamePairsContext) AnnotatedQualifiedClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotatedQualifiedClassNameContext) SpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression) AnonymousInnerClassDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.AnonymousInnerClassDeclarationContext) ForInitContext(org.apache.groovy.parser.antlr4.GroovyParser.ForInitContext) VariableModifiersOptContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableModifiersOptContext) ArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression) MultiplicativeExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.MultiplicativeExprAltContext) SyntaxErrorMessage(org.codehaus.groovy.control.messages.SyntaxErrorMessage) AssignmentExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.AssignmentExprAltContext) CatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement) TypeArgumentContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeArgumentContext) VariableDeclaratorsContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclaratorsContext) TypeParameterContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeParameterContext) GroovyBugError(org.codehaus.groovy.GroovyBugError) ReturnStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ReturnStmtAltContext) List(java.util.List) BinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression) TypeParametersContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeParametersContext) ArgumentsContext(org.apache.groovy.parser.antlr4.GroovyParser.ArgumentsContext) BlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement) LE(org.apache.groovy.parser.antlr4.GroovyParser.LE) BlockStatementsContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockStatementsContext) Optional(java.util.Optional) GstringPathContext(org.apache.groovy.parser.antlr4.GroovyParser.GstringPathContext) QualifiedStandardClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedStandardClassNameContext) KeywordsContext(org.apache.groovy.parser.antlr4.GroovyParser.KeywordsContext) AdditiveExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.AdditiveExprAltContext) NodeMetaDataHandler(org.codehaus.groovy.ast.NodeMetaDataHandler) ClassicalForControlContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassicalForControlContext) Statement(org.codehaus.groovy.ast.stmt.Statement) ParseCancellationException(org.antlr.v4.runtime.misc.ParseCancellationException) CodeVisitorSupport(org.codehaus.groovy.ast.CodeVisitorSupport) ElvisOperatorExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression) STATIC(org.apache.groovy.parser.antlr4.GroovyParser.STATIC) LT(org.apache.groovy.parser.antlr4.GroovyParser.LT) Deque(java.util.Deque) ResourceListContext(org.apache.groovy.parser.antlr4.GroovyParser.ResourceListContext) SwitchStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.SwitchStatementContext) SuperPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.SuperPrmrAltContext) EnumHelper(org.codehaus.groovy.antlr.EnumHelper) FormalParametersContext(org.apache.groovy.parser.antlr4.GroovyParser.FormalParametersContext) MethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression) DoWhileStatement(org.codehaus.groovy.ast.stmt.DoWhileStatement) ExpressionListElementContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionListElementContext) LambdaBodyContext(org.apache.groovy.parser.antlr4.GroovyParser.LambdaBodyContext) ContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement) QualifiedNameContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedNameContext) SpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression) ResourcesContext(org.apache.groovy.parser.antlr4.GroovyParser.ResourcesContext) YieldStmtAltContext(org.apache.groovy.parser.antlr4.GroovyLangParser.YieldStmtAltContext) ADD(org.apache.groovy.parser.antlr4.GroovyParser.ADD) PostfixExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.PostfixExpressionContext) Iterator(java.util.Iterator) CASE(org.apache.groovy.parser.antlr4.GroovyParser.CASE) ExpressionInParContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionInParContext) DimContext(org.apache.groovy.parser.antlr4.GroovyParser.DimContext) DeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression) ClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression) TypeContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeContext) SwitchStatement(org.codehaus.groovy.ast.stmt.SwitchStatement) FormalParameterListContext(org.apache.groovy.parser.antlr4.GroovyParser.FormalParameterListContext) ImportNode(org.codehaus.groovy.ast.ImportNode) QualifiedClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedClassNameContext) LogicalOrExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LogicalOrExprAltContext) FieldNode(org.codehaus.groovy.ast.FieldNode) AttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression) RANGE_INCLUSIVE(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_INCLUSIVE) ClassOrInterfaceTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceTypeContext) Tuple.tuple(groovy.lang.Tuple.tuple) RANGE_EXCLUSIVE_LEFT(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_EXCLUSIVE_LEFT) ClassOrInterfaceModifiersOptContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceModifiersOptContext) MemberDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.MemberDeclarationContext) Collections(java.util.Collections) ModifiersContext(org.apache.groovy.parser.antlr4.GroovyParser.ModifiersContext) UnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression) ClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression) ArgumentListExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression) MethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression) TernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression) PropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression) PrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression) PostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression) Expression(org.codehaus.groovy.ast.expr.Expression) UnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression) AnnotationConstantExpression(org.codehaus.groovy.ast.expr.AnnotationConstantExpression) BitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression) MapExpression(org.codehaus.groovy.ast.expr.MapExpression) ConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression) NotExpression(org.codehaus.groovy.ast.expr.NotExpression) EmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression) ConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression) ClassExpression(org.codehaus.groovy.ast.expr.ClassExpression) TupleExpression(org.codehaus.groovy.ast.expr.TupleExpression) MethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression) MapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression) VariableExpression(org.codehaus.groovy.ast.expr.VariableExpression) CastExpression(org.codehaus.groovy.ast.expr.CastExpression) BooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression) LambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression) GStringExpression(org.codehaus.groovy.ast.expr.GStringExpression) ListExpression(org.codehaus.groovy.ast.expr.ListExpression) RangeExpression(org.codehaus.groovy.ast.expr.RangeExpression) NamedArgumentListExpression(org.codehaus.groovy.ast.expr.NamedArgumentListExpression) SpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression) ArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression) BinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression) ElvisOperatorExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression) MethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression) SpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression) DeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression) ClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression) AttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression) AnnotationConstantExpression(org.codehaus.groovy.ast.expr.AnnotationConstantExpression) ConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression) VariableExpression(org.codehaus.groovy.ast.expr.VariableExpression) GStringExpression(org.codehaus.groovy.ast.expr.GStringExpression) LinkedList(java.util.LinkedList)

Example 4 with GStringExpression

use of org.codehaus.groovy.ast.expr.GStringExpression in project groovy by apache.

the class AstBuilder method visitPathElement.

@Override
public Expression visitPathElement(final PathElementContext ctx) {
    Expression baseExpr = ctx.getNodeMetaData(PATH_EXPRESSION_BASE_EXPR);
    Objects.requireNonNull(baseExpr, "baseExpr is required!");
    if (asBoolean(ctx.namePart())) {
        Expression namePartExpr = this.visitNamePart(ctx.namePart());
        GenericsType[] genericsTypes = this.visitNonWildcardTypeArguments(ctx.nonWildcardTypeArguments());
        if (asBoolean(ctx.DOT())) {
            boolean isSafeChain = this.isTrue(baseExpr, PATH_EXPRESSION_BASE_EXPR_SAFE_CHAIN);
            return this.createDotExpression(ctx, baseExpr, namePartExpr, genericsTypes, isSafeChain);
        } else if (asBoolean(ctx.SAFE_DOT())) {
            return this.createDotExpression(ctx, baseExpr, namePartExpr, genericsTypes, true);
        } else if (asBoolean(ctx.SAFE_CHAIN_DOT())) {
            // e.g. obj??.a  OR obj??.@a
            Expression expression = createDotExpression(ctx, baseExpr, namePartExpr, genericsTypes, true);
            expression.putNodeMetaData(PATH_EXPRESSION_BASE_EXPR_SAFE_CHAIN, true);
            return expression;
        } else if (asBoolean(ctx.METHOD_POINTER())) {
            // e.g. obj.&m
            return configureAST(new MethodPointerExpression(baseExpr, namePartExpr), ctx);
        } else if (asBoolean(ctx.METHOD_REFERENCE())) {
            // e.g. obj::m
            return configureAST(new MethodReferenceExpression(baseExpr, namePartExpr), ctx);
        } else if (asBoolean(ctx.SPREAD_DOT())) {
            if (asBoolean(ctx.AT())) {
                // e.g. obj*.@a
                AttributeExpression attributeExpression = new AttributeExpression(baseExpr, namePartExpr, true);
                attributeExpression.setSpreadSafe(true);
                return configureAST(attributeExpression, ctx);
            } else {
                // e.g. obj*.p
                PropertyExpression propertyExpression = new PropertyExpression(baseExpr, namePartExpr, true);
                propertyExpression.putNodeMetaData(PATH_EXPRESSION_BASE_EXPR_GENERICS_TYPES, genericsTypes);
                propertyExpression.setSpreadSafe(true);
                return configureAST(propertyExpression, ctx);
            }
        }
    } else if (asBoolean(ctx.creator())) {
        CreatorContext creatorContext = ctx.creator();
        creatorContext.putNodeMetaData(ENCLOSING_INSTANCE_EXPRESSION, baseExpr);
        return configureAST(this.visitCreator(creatorContext), ctx);
    } else if (asBoolean(ctx.indexPropertyArgs())) {
        // e.g. list[1, 3, 5]
        Tuple2<Token, Expression> tuple = this.visitIndexPropertyArgs(ctx.indexPropertyArgs());
        boolean isSafeChain = this.isTrue(baseExpr, PATH_EXPRESSION_BASE_EXPR_SAFE_CHAIN);
        return configureAST(new BinaryExpression(baseExpr, createGroovyToken(tuple.getV1()), tuple.getV2(), isSafeChain || asBoolean(ctx.indexPropertyArgs().SAFE_INDEX())), ctx);
    } else if (asBoolean(ctx.namedPropertyArgs())) {
        // this is a special way to signify a cast, e.g. Person[name: 'Daniel.Sun', location: 'Shanghai']
        List<MapEntryExpression> mapEntryExpressionList = this.visitNamedPropertyArgs(ctx.namedPropertyArgs());
        Expression right;
        Expression firstKeyExpression;
        int mapEntryExpressionListSize = mapEntryExpressionList.size();
        if (mapEntryExpressionListSize == 0) {
            // expecting list of MapEntryExpressions later so use SpreadMap to smuggle empty MapExpression to later stages
            right = configureAST(new SpreadMapExpression(configureAST(new MapExpression(), ctx.namedPropertyArgs())), ctx.namedPropertyArgs());
        } else if (mapEntryExpressionListSize == 1 && (firstKeyExpression = mapEntryExpressionList.get(0).getKeyExpression()) instanceof SpreadMapExpression) {
            right = firstKeyExpression;
        } else {
            ListExpression listExpression = configureAST(new ListExpression(mapEntryExpressionList.stream().map(e -> {
                if (e.getKeyExpression() instanceof SpreadMapExpression) {
                    return e.getKeyExpression();
                }
                return e;
            }).collect(Collectors.toList())), ctx.namedPropertyArgs());
            listExpression.setWrapped(true);
            right = listExpression;
        }
        NamedPropertyArgsContext namedPropertyArgsContext = ctx.namedPropertyArgs();
        Token token = (namedPropertyArgsContext.LBRACK() == null ? namedPropertyArgsContext.SAFE_INDEX() : namedPropertyArgsContext.LBRACK()).getSymbol();
        return configureAST(new BinaryExpression(baseExpr, createGroovyToken(token), right), ctx);
    } else if (asBoolean(ctx.arguments())) {
        Expression argumentsExpr = this.visitArguments(ctx.arguments());
        configureAST(argumentsExpr, ctx);
        if (isInsideParentheses(baseExpr)) {
            // e.g. (obj.x)(), (obj.@x)()
            return configureAST(createCallMethodCallExpression(baseExpr, argumentsExpr), ctx);
        }
        if (baseExpr instanceof AttributeExpression) {
            // e.g. obj.@a(1, 2)
            AttributeExpression attributeExpression = (AttributeExpression) baseExpr;
            // whether attributeExpression is spread safe or not, we must reset it as false
            attributeExpression.setSpreadSafe(false);
            return configureAST(createCallMethodCallExpression(attributeExpression, argumentsExpr, true), ctx);
        }
        if (baseExpr instanceof PropertyExpression) {
            // e.g. obj.a(1, 2)
            MethodCallExpression methodCallExpression = this.createMethodCallExpression((PropertyExpression) baseExpr, argumentsExpr);
            return configureAST(methodCallExpression, ctx);
        }
        if (baseExpr instanceof VariableExpression) {
            // void and primitive type AST node must be an instance of VariableExpression
            String baseExprText = baseExpr.getText();
            if (VOID_STR.equals(baseExprText)) {
                // e.g. void()
                return configureAST(this.createCallMethodCallExpression(this.createConstantExpression(baseExpr), argumentsExpr), ctx);
            } else if (isPrimitiveType(baseExprText)) {
                // e.g. int(), long(), float(), etc.
                throw this.createParsingFailedException("Primitive type literal: " + baseExprText + " cannot be used as a method name", ctx);
            }
        }
        if (// e.g. m()
        baseExpr instanceof VariableExpression || // e.g. "$m"()
        baseExpr instanceof GStringExpression || (baseExpr instanceof ConstantExpression && this.isTrue(baseExpr, IS_STRING))) {
            // e.g. "m"()
            String baseExprText = baseExpr.getText();
            if (THIS_STR.equals(baseExprText) || SUPER_STR.equals(baseExprText)) {
                // @MapConstructor(pre={ super(args?.first, args?.last); args = args ?: [:] }, post = { first = first?.toUpperCase() })
                if (visitingClosureCount > 0) {
                    return configureAST(new MethodCallExpression(baseExpr, baseExprText, argumentsExpr), ctx);
                }
                return configureAST(new ConstructorCallExpression(SUPER_STR.equals(baseExprText) ? ClassNode.SUPER : ClassNode.THIS, argumentsExpr), ctx);
            }
            MethodCallExpression methodCallExpression = this.createMethodCallExpression(baseExpr, argumentsExpr);
            return configureAST(methodCallExpression, ctx);
        }
        // e.g. 1(), 1.1(), ((int) 1 / 2)(1, 2), {a, b -> a + b }(1, 2), m()()
        return configureAST(this.createCallMethodCallExpression(baseExpr, argumentsExpr), ctx);
    } else if (asBoolean(ctx.closureOrLambdaExpression())) {
        ClosureExpression closureExpression = this.visitClosureOrLambdaExpression(ctx.closureOrLambdaExpression());
        if (baseExpr instanceof MethodCallExpression) {
            MethodCallExpression methodCallExpression = (MethodCallExpression) baseExpr;
            Expression argumentsExpression = methodCallExpression.getArguments();
            if (argumentsExpression instanceof ArgumentListExpression) {
                // normal arguments, e.g. 1, 2
                ArgumentListExpression argumentListExpression = (ArgumentListExpression) argumentsExpression;
                argumentListExpression.getExpressions().add(closureExpression);
                return configureAST(methodCallExpression, ctx);
            }
            if (argumentsExpression instanceof TupleExpression) {
                // named arguments, e.g. x: 1, y: 2
                TupleExpression tupleExpression = (TupleExpression) argumentsExpression;
                NamedArgumentListExpression namedArgumentListExpression = (NamedArgumentListExpression) tupleExpression.getExpression(0);
                if (asBoolean(tupleExpression.getExpressions())) {
                    methodCallExpression.setArguments(configureAST(new ArgumentListExpression(configureAST(new MapExpression(namedArgumentListExpression.getMapEntryExpressions()), namedArgumentListExpression), closureExpression), tupleExpression));
                } else {
                    // the branch should never reach, because named arguments must not be empty
                    methodCallExpression.setArguments(configureAST(new ArgumentListExpression(closureExpression), tupleExpression));
                }
                return configureAST(methodCallExpression, ctx);
            }
        }
        if (baseExpr instanceof PropertyExpression) {
            // e.g. obj.m { }
            MethodCallExpression methodCallExpression = this.createMethodCallExpression((PropertyExpression) baseExpr, configureAST(new ArgumentListExpression(closureExpression), closureExpression));
            return configureAST(methodCallExpression, ctx);
        }
        if (// e.g. m { }
        baseExpr instanceof VariableExpression || // e.g. "$m" { }
        baseExpr instanceof GStringExpression || (baseExpr instanceof ConstantExpression && this.isTrue(baseExpr, IS_STRING))) {
            // e.g. "m" { }
            MethodCallExpression methodCallExpression = this.createMethodCallExpression(baseExpr, configureAST(new ArgumentListExpression(closureExpression), closureExpression));
            return configureAST(methodCallExpression, ctx);
        }
        // e.g. 1 { }, 1.1 { }, (1 / 2) { }, m() { }, { -> ... } { }
        MethodCallExpression methodCallExpression = this.createCallMethodCallExpression(baseExpr, configureAST(new ArgumentListExpression(closureExpression), closureExpression));
        return configureAST(methodCallExpression, ctx);
    }
    throw createParsingFailedException("Unsupported path element: " + ctx.getText(), ctx);
}
Also used : CastParExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.CastParExpressionContext) SUB(org.apache.groovy.parser.antlr4.GroovyParser.SUB) CastExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.CastExprAltContext) ConditionalExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ConditionalExprAltContext) DEFAULT(org.apache.groovy.parser.antlr4.GroovyParser.DEFAULT) IdentifierContext(org.apache.groovy.parser.antlr4.GroovyParser.IdentifierContext) SEALED(org.apache.groovy.parser.antlr4.GroovyParser.SEALED) QualifiedClassNameListContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedClassNameListContext) ModifierContext(org.apache.groovy.parser.antlr4.GroovyParser.ModifierContext) ElementValuePairsContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValuePairsContext) BlockStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockStatementContext) PathExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.PathExpressionContext) NonSealed(groovy.transform.NonSealed) EnumConstantsContext(org.apache.groovy.parser.antlr4.GroovyParser.EnumConstantsContext) Map(java.util.Map) ListContext(org.apache.groovy.parser.antlr4.GroovyParser.ListContext) Sealed(groovy.transform.Sealed) PropertyNode(org.codehaus.groovy.ast.PropertyNode) Trait(groovy.transform.Trait) TypeNamePairContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeNamePairContext) UnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression) ClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression) Recognizer(org.antlr.v4.runtime.Recognizer) QualifiedNameElementContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedNameElementContext) EnhancedStatementExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedStatementExpressionContext) EmptyDimsContext(org.apache.groovy.parser.antlr4.GroovyParser.EmptyDimsContext) ArgumentListExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression) ClosureOrLambdaExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.ClosureOrLambdaExpressionContext) CommandExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.CommandExpressionContext) CommandExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.CommandExprAltContext) GstringValueContext(org.apache.groovy.parser.antlr4.GroovyParser.GstringValueContext) ArrayInitializerContext(org.apache.groovy.parser.antlr4.GroovyParser.ArrayInitializerContext) MethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression) Stream(java.util.stream.Stream) TernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression) AssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement) DefaultGroovyMethods.asBoolean(org.codehaus.groovy.runtime.DefaultGroovyMethods.asBoolean) IdentifierPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.IdentifierPrmrAltContext) AndExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.AndExprAltContext) DEC(org.apache.groovy.parser.antlr4.GroovyParser.DEC) PropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression) DEF(org.apache.groovy.parser.antlr4.GroovyParser.DEF) GeneralUtils.declS(org.codehaus.groovy.ast.tools.GeneralUtils.declS) VariableDeclaratorIdContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclaratorIdContext) YieldStatementContext(org.apache.groovy.parser.antlr4.GroovyLangParser.YieldStatementContext) LinkedHashMap(java.util.LinkedHashMap) EnhancedForControlContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedForControlContext) PrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression) SystemUtil(org.apache.groovy.util.SystemUtil) ExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement) GeneralUtils.returnS(org.codehaus.groovy.ast.tools.GeneralUtils.returnS) GroovyParserRuleContext(org.apache.groovy.parser.antlr4.GroovyParser.GroovyParserRuleContext) PowerExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.PowerExprAltContext) StandardLambdaExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.StandardLambdaExpressionContext) PostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression) StringUtils(org.apache.groovy.parser.antlr4.util.StringUtils) ElementValuePairContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValuePairContext) Expression(org.codehaus.groovy.ast.expr.Expression) AnnotationNameContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotationNameContext) FINAL(org.apache.groovy.parser.antlr4.GroovyParser.FINAL) Opcodes(org.objectweb.asm.Opcodes) CompileStatic(groovy.transform.CompileStatic) UnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression) SourceUnit(org.codehaus.groovy.control.SourceUnit) ClassNode(org.codehaus.groovy.ast.ClassNode) SwitchExpressionLabelContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchExpressionLabelContext) ForStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ForStmtAltContext) BreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement) GeneralUtils.listX(org.codehaus.groovy.ast.tools.GeneralUtils.listX) GeneralUtils.localVarX(org.codehaus.groovy.ast.tools.GeneralUtils.localVarX) GenericsType(org.codehaus.groovy.ast.GenericsType) IOException(java.io.IOException) PredictionMode(org.antlr.v4.runtime.atn.PredictionMode) ForControlContext(org.apache.groovy.parser.antlr4.GroovyParser.ForControlContext) ReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement) AnnotationConstantExpression(org.codehaus.groovy.ast.expr.AnnotationConstantExpression) VariableModifiersContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableModifiersContext) CompilationUnitContext(org.apache.groovy.parser.antlr4.GroovyParser.CompilationUnitContext) RecognitionException(org.antlr.v4.runtime.RecognitionException) BitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression) TupleConstructor(groovy.transform.TupleConstructor) ANTLRErrorListener(org.antlr.v4.runtime.ANTLRErrorListener) IfElseStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.IfElseStatementContext) MapEntryLabelContext(org.apache.groovy.parser.antlr4.GroovyParser.MapEntryLabelContext) AS(org.apache.groovy.parser.antlr4.GroovyParser.AS) EqualityExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.EqualityExprAltContext) GeneralUtils.stmt(org.codehaus.groovy.ast.tools.GeneralUtils.stmt) Interval(org.antlr.v4.runtime.misc.Interval) IntegerLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.IntegerLiteralAltContext) MapExpression(org.codehaus.groovy.ast.expr.MapExpression) TypeArgumentsContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeArgumentsContext) CompilePhase(org.codehaus.groovy.control.CompilePhase) TokenStream(org.antlr.v4.runtime.TokenStream) AtnManager(org.apache.groovy.parser.antlr4.internal.atnmanager.AtnManager) ExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionContext) ConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression) ClosureUtils(org.codehaus.groovy.ast.tools.ClosureUtils) ModuleNode(org.codehaus.groovy.ast.ModuleNode) LogicalAndExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LogicalAndExprAltContext) FormalParameterContext(org.apache.groovy.parser.antlr4.GroovyParser.FormalParameterContext) EnumConstantClassNode(org.codehaus.groovy.ast.EnumConstantClassNode) BlockContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockContext) Numbers(org.codehaus.groovy.syntax.Numbers) SwitchLabelContext(org.apache.groovy.parser.antlr4.GroovyParser.SwitchLabelContext) BreakStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.BreakStatementContext) BuiltInTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.BuiltInTypeContext) MethodNameContext(org.apache.groovy.parser.antlr4.GroovyParser.MethodNameContext) CreatorContext(org.apache.groovy.parser.antlr4.GroovyParser.CreatorContext) ForStatement(org.codehaus.groovy.ast.stmt.ForStatement) INC(org.apache.groovy.parser.antlr4.GroovyParser.INC) LabeledStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LabeledStmtAltContext) MethodDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.MethodDeclarationContext) ScriptStatementsContext(org.apache.groovy.parser.antlr4.GroovyParser.ScriptStatementsContext) NamedPropertyArgsContext(org.apache.groovy.parser.antlr4.GroovyParser.NamedPropertyArgsContext) ExclusiveOrExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ExclusiveOrExprAltContext) Types(org.codehaus.groovy.syntax.Types) GeneralUtils.closureX(org.codehaus.groovy.ast.tools.GeneralUtils.closureX) DefaultGroovyMethods(org.codehaus.groovy.runtime.DefaultGroovyMethods) ThisPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ThisPrmrAltContext) SwitchBlockStatementGroupContext(org.apache.groovy.parser.antlr4.GroovyParser.SwitchBlockStatementGroupContext) StringGroovyMethods(org.codehaus.groovy.runtime.StringGroovyMethods) Collectors(java.util.stream.Collectors) NotExpression(org.codehaus.groovy.ast.expr.NotExpression) PrimitiveTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.PrimitiveTypeContext) InnerClassNode(org.codehaus.groovy.ast.InnerClassNode) Objects(java.util.Objects) ARROW(org.apache.groovy.parser.antlr4.GroovyLangParser.ARROW) IfStatement(org.codehaus.groovy.ast.stmt.IfStatement) MapContext(org.apache.groovy.parser.antlr4.GroovyParser.MapContext) NewPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.NewPrmrAltContext) EnhancedArgumentListInParContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedArgumentListInParContext) ForUpdateContext(org.apache.groovy.parser.antlr4.GroovyParser.ForUpdateContext) RegexExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.RegexExprAltContext) INSTANCEOF(org.apache.groovy.parser.antlr4.GroovyParser.INSTANCEOF) AnnotationNode(org.codehaus.groovy.ast.AnnotationNode) VariableDeclaratorContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclaratorContext) CompactConstructorDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.CompactConstructorDeclarationContext) TypeArgumentsOrDiamondContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeArgumentsOrDiamondContext) Verifier(org.codehaus.groovy.classgen.Verifier) ContinueStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.ContinueStatementContext) Maps(org.apache.groovy.util.Maps) Tuple2(groovy.lang.Tuple2) NOT_IN(org.apache.groovy.parser.antlr4.GroovyParser.NOT_IN) Tuple3(groovy.lang.Tuple3) ThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement) VariableNamesContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableNamesContext) GeneralUtils.varX(org.codehaus.groovy.ast.tools.GeneralUtils.varX) EmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression) LinkedList(java.util.LinkedList) AnnotationContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotationContext) GstringContext(org.apache.groovy.parser.antlr4.GroovyParser.GstringContext) ConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression) DynamicMemberNameContext(org.apache.groovy.parser.antlr4.GroovyParser.DynamicMemberNameContext) MapEntryContext(org.apache.groovy.parser.antlr4.GroovyParser.MapEntryContext) StatementContext(org.apache.groovy.parser.antlr4.GroovyParser.StatementContext) DoWhileStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.DoWhileStmtAltContext) ClassHelper(org.codehaus.groovy.ast.ClassHelper) GeneralUtils.cloneParams(org.codehaus.groovy.ast.tools.GeneralUtils.cloneParams) ShiftExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ShiftExprAltContext) ClassBodyDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassBodyDeclarationContext) DescriptiveErrorStrategy(org.apache.groovy.parser.antlr4.internal.DescriptiveErrorStrategy) TypeUtil.isPrimitiveType(org.codehaus.groovy.classgen.asm.util.TypeUtil.isPrimitiveType) SynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement) ClassExpression(org.codehaus.groovy.ast.expr.ClassExpression) ReturnTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.ReturnTypeContext) ASTNode(org.codehaus.groovy.ast.ASTNode) TupleExpression(org.codehaus.groovy.ast.expr.TupleExpression) NonWildcardTypeArgumentsContext(org.apache.groovy.parser.antlr4.GroovyParser.NonWildcardTypeArgumentsContext) ThisFormalParameterContext(org.apache.groovy.parser.antlr4.GroovyParser.ThisFormalParameterContext) TryCatchStatement(org.codehaus.groovy.ast.stmt.TryCatchStatement) RANGE_EXCLUSIVE_RIGHT(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_EXCLUSIVE_RIGHT) MethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression) BooleanLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.BooleanLiteralAltContext) ConstructorNode(org.codehaus.groovy.ast.ConstructorNode) MapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression) ClassOrInterfaceModifierContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceModifierContext) SyntaxException(org.codehaus.groovy.syntax.SyntaxException) PRIVATE(org.apache.groovy.parser.antlr4.GroovyParser.PRIVATE) InclusiveOrExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.InclusiveOrExprAltContext) ElementValueArrayInitializerContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValueArrayInitializerContext) Arrays(java.util.Arrays) Token(org.antlr.v4.runtime.Token) CharStreams(org.antlr.v4.runtime.CharStreams) NamePartContext(org.apache.groovy.parser.antlr4.GroovyParser.NamePartContext) GE(org.apache.groovy.parser.antlr4.GroovyParser.GE) EnumConstantContext(org.apache.groovy.parser.antlr4.GroovyParser.EnumConstantContext) LocalVariableDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.LocalVariableDeclarationContext) ClassBodyContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassBodyContext) MethodBodyContext(org.apache.groovy.parser.antlr4.GroovyParser.MethodBodyContext) WhileStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.WhileStmtAltContext) CaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement) CommandArgumentContext(org.apache.groovy.parser.antlr4.GroovyParser.CommandArgumentContext) CreatedNameContext(org.apache.groovy.parser.antlr4.GroovyParser.CreatedNameContext) NOT_INSTANCEOF(org.apache.groovy.parser.antlr4.GroovyParser.NOT_INSTANCEOF) IndexPropertyArgsContext(org.apache.groovy.parser.antlr4.GroovyParser.IndexPropertyArgsContext) TypeBoundContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeBoundContext) GT(org.apache.groovy.parser.antlr4.GroovyParser.GT) ParExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.ParExpressionContext) ClosureContext(org.apache.groovy.parser.antlr4.GroovyParser.ClosureContext) VariableExpression(org.codehaus.groovy.ast.expr.VariableExpression) PackageNode(org.codehaus.groovy.ast.PackageNode) ModifierNode(org.codehaus.groovy.ast.ModifierNode) AnnotatedNodeUtils(org.apache.groovy.ast.tools.AnnotatedNodeUtils) ConditionalStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.ConditionalStatementContext) EnhancedArgumentListElementContext(org.apache.groovy.parser.antlr4.GroovyParser.EnhancedArgumentListElementContext) AssertStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.AssertStatementContext) ClassHelper.isPrimitiveVoid(org.codehaus.groovy.ast.ClassHelper.isPrimitiveVoid) NON_SEALED(org.apache.groovy.parser.antlr4.GroovyParser.NON_SEALED) GeneralUtils.callX(org.codehaus.groovy.ast.tools.GeneralUtils.callX) TerminalNode(org.antlr.v4.runtime.tree.TerminalNode) PositionConfigureUtils.configureAST(org.apache.groovy.parser.antlr4.util.PositionConfigureUtils.configureAST) SwitchExpressionContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchExpressionContext) CompilationFailedException(org.codehaus.groovy.control.CompilationFailedException) AnnotationsOptContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotationsOptContext) CastExpression(org.codehaus.groovy.ast.expr.CastExpression) ParserRuleContext(org.antlr.v4.runtime.ParserRuleContext) RelationalExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.RelationalExprAltContext) BooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression) BlockStatementsOptContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockStatementsOptContext) ImportDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.ImportDeclarationContext) ThrowStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ThrowStmtAltContext) FieldDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.FieldDeclarationContext) FinallyBlockContext(org.apache.groovy.parser.antlr4.GroovyParser.FinallyBlockContext) StandardLambdaParametersContext(org.apache.groovy.parser.antlr4.GroovyParser.StandardLambdaParametersContext) LambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression) LoopStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LoopStmtAltContext) WhileStatement(org.codehaus.groovy.ast.stmt.WhileStatement) ArrayList(java.util.ArrayList) StringLiteralContext(org.apache.groovy.parser.antlr4.GroovyParser.StringLiteralContext) CharStream(org.antlr.v4.runtime.CharStream) EmptyDimsOptContext(org.apache.groovy.parser.antlr4.GroovyParser.EmptyDimsOptContext) MethodNode(org.codehaus.groovy.ast.MethodNode) NullLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.NullLiteralAltContext) CatchClauseContext(org.apache.groovy.parser.antlr4.GroovyParser.CatchClauseContext) ClassDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassDeclarationContext) ParseTree(org.antlr.v4.runtime.tree.ParseTree) VariableInitializerContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableInitializerContext) MultipleAssignmentExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.MultipleAssignmentExprAltContext) RANGE_EXCLUSIVE_FULL(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_EXCLUSIVE_FULL) Parameter(org.codehaus.groovy.ast.Parameter) VariableInitializersContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableInitializersContext) FloatingPointLiteralAltContext(org.apache.groovy.parser.antlr4.GroovyParser.FloatingPointLiteralAltContext) SwitchExprAltContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchExprAltContext) VAR(org.apache.groovy.parser.antlr4.GroovyParser.VAR) ClassOrInterfaceModifiersContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceModifiersContext) IN(org.apache.groovy.parser.antlr4.GroovyParser.IN) ExpressionListContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionListContext) EmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement) TypeDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeDeclarationContext) ElementValuesContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValuesContext) PackageDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.PackageDeclarationContext) GStringExpression(org.codehaus.groovy.ast.expr.GStringExpression) BufferedReader(java.io.BufferedReader) ArrayDeque(java.util.ArrayDeque) DefaultGroovyMethods.last(org.codehaus.groovy.runtime.DefaultGroovyMethods.last) ResourceContext(org.apache.groovy.parser.antlr4.GroovyParser.ResourceContext) ListExpression(org.codehaus.groovy.ast.expr.ListExpression) SAFE_INDEX(org.apache.groovy.parser.antlr4.GroovyParser.SAFE_INDEX) TryCatchStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.TryCatchStatementContext) SynchronizedStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.SynchronizedStmtAltContext) MapEntryListContext(org.apache.groovy.parser.antlr4.GroovyParser.MapEntryListContext) ElementValueContext(org.apache.groovy.parser.antlr4.GroovyParser.ElementValueContext) VariableDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclarationContext) CommonTokenStream(org.antlr.v4.runtime.CommonTokenStream) ClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassNameContext) TypeListContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeListContext) CatchTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.CatchTypeContext) RangeExpression(org.codehaus.groovy.ast.expr.RangeExpression) UnaryNotExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.UnaryNotExprAltContext) GeneralUtils.assignX(org.codehaus.groovy.ast.tools.GeneralUtils.assignX) ModifiersOptContext(org.apache.groovy.parser.antlr4.GroovyParser.ModifiersOptContext) NamedArgumentListExpression(org.codehaus.groovy.ast.expr.NamedArgumentListExpression) VariableModifierContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableModifierContext) SwitchBlockStatementExpressionGroupContext(org.apache.groovy.parser.antlr4.GroovyLangParser.SwitchBlockStatementExpressionGroupContext) PathElementContext(org.apache.groovy.parser.antlr4.GroovyParser.PathElementContext) UnaryAddExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.UnaryAddExprAltContext) TypeNamePairsContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeNamePairsContext) AnnotatedQualifiedClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.AnnotatedQualifiedClassNameContext) SpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression) AnonymousInnerClassDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.AnonymousInnerClassDeclarationContext) ForInitContext(org.apache.groovy.parser.antlr4.GroovyParser.ForInitContext) VariableModifiersOptContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableModifiersOptContext) ArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression) MultiplicativeExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.MultiplicativeExprAltContext) SyntaxErrorMessage(org.codehaus.groovy.control.messages.SyntaxErrorMessage) AssignmentExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.AssignmentExprAltContext) CatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement) TypeArgumentContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeArgumentContext) VariableDeclaratorsContext(org.apache.groovy.parser.antlr4.GroovyParser.VariableDeclaratorsContext) TypeParameterContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeParameterContext) GroovyBugError(org.codehaus.groovy.GroovyBugError) ReturnStmtAltContext(org.apache.groovy.parser.antlr4.GroovyParser.ReturnStmtAltContext) List(java.util.List) BinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression) TypeParametersContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeParametersContext) ArgumentsContext(org.apache.groovy.parser.antlr4.GroovyParser.ArgumentsContext) BlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement) LE(org.apache.groovy.parser.antlr4.GroovyParser.LE) BlockStatementsContext(org.apache.groovy.parser.antlr4.GroovyParser.BlockStatementsContext) Optional(java.util.Optional) GstringPathContext(org.apache.groovy.parser.antlr4.GroovyParser.GstringPathContext) QualifiedStandardClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedStandardClassNameContext) KeywordsContext(org.apache.groovy.parser.antlr4.GroovyParser.KeywordsContext) AdditiveExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.AdditiveExprAltContext) NodeMetaDataHandler(org.codehaus.groovy.ast.NodeMetaDataHandler) ClassicalForControlContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassicalForControlContext) Statement(org.codehaus.groovy.ast.stmt.Statement) ParseCancellationException(org.antlr.v4.runtime.misc.ParseCancellationException) CodeVisitorSupport(org.codehaus.groovy.ast.CodeVisitorSupport) ElvisOperatorExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression) STATIC(org.apache.groovy.parser.antlr4.GroovyParser.STATIC) LT(org.apache.groovy.parser.antlr4.GroovyParser.LT) Deque(java.util.Deque) ResourceListContext(org.apache.groovy.parser.antlr4.GroovyParser.ResourceListContext) SwitchStatementContext(org.apache.groovy.parser.antlr4.GroovyParser.SwitchStatementContext) SuperPrmrAltContext(org.apache.groovy.parser.antlr4.GroovyParser.SuperPrmrAltContext) EnumHelper(org.codehaus.groovy.antlr.EnumHelper) FormalParametersContext(org.apache.groovy.parser.antlr4.GroovyParser.FormalParametersContext) MethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression) DoWhileStatement(org.codehaus.groovy.ast.stmt.DoWhileStatement) ExpressionListElementContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionListElementContext) LambdaBodyContext(org.apache.groovy.parser.antlr4.GroovyParser.LambdaBodyContext) ContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement) QualifiedNameContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedNameContext) SpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression) ResourcesContext(org.apache.groovy.parser.antlr4.GroovyParser.ResourcesContext) YieldStmtAltContext(org.apache.groovy.parser.antlr4.GroovyLangParser.YieldStmtAltContext) ADD(org.apache.groovy.parser.antlr4.GroovyParser.ADD) PostfixExpressionContext(org.apache.groovy.parser.antlr4.GroovyParser.PostfixExpressionContext) Iterator(java.util.Iterator) CASE(org.apache.groovy.parser.antlr4.GroovyParser.CASE) ExpressionInParContext(org.apache.groovy.parser.antlr4.GroovyParser.ExpressionInParContext) DimContext(org.apache.groovy.parser.antlr4.GroovyParser.DimContext) DeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression) ClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression) TypeContext(org.apache.groovy.parser.antlr4.GroovyParser.TypeContext) SwitchStatement(org.codehaus.groovy.ast.stmt.SwitchStatement) FormalParameterListContext(org.apache.groovy.parser.antlr4.GroovyParser.FormalParameterListContext) ImportNode(org.codehaus.groovy.ast.ImportNode) QualifiedClassNameContext(org.apache.groovy.parser.antlr4.GroovyParser.QualifiedClassNameContext) LogicalOrExprAltContext(org.apache.groovy.parser.antlr4.GroovyParser.LogicalOrExprAltContext) FieldNode(org.codehaus.groovy.ast.FieldNode) AttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression) RANGE_INCLUSIVE(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_INCLUSIVE) ClassOrInterfaceTypeContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceTypeContext) Tuple.tuple(groovy.lang.Tuple.tuple) RANGE_EXCLUSIVE_LEFT(org.apache.groovy.parser.antlr4.GroovyParser.RANGE_EXCLUSIVE_LEFT) ClassOrInterfaceModifiersOptContext(org.apache.groovy.parser.antlr4.GroovyParser.ClassOrInterfaceModifiersOptContext) MemberDeclarationContext(org.apache.groovy.parser.antlr4.GroovyParser.MemberDeclarationContext) Collections(java.util.Collections) ModifiersContext(org.apache.groovy.parser.antlr4.GroovyParser.ModifiersContext) AnnotationConstantExpression(org.codehaus.groovy.ast.expr.AnnotationConstantExpression) ConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression) CreatorContext(org.apache.groovy.parser.antlr4.GroovyParser.CreatorContext) TupleExpression(org.codehaus.groovy.ast.expr.TupleExpression) ArgumentListExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression) NamedArgumentListExpression(org.codehaus.groovy.ast.expr.NamedArgumentListExpression) Token(org.antlr.v4.runtime.Token) GStringExpression(org.codehaus.groovy.ast.expr.GStringExpression) MethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression) BinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression) MethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression) GenericsType(org.codehaus.groovy.ast.GenericsType) PropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression) LinkedList(java.util.LinkedList) ArrayList(java.util.ArrayList) List(java.util.List) ClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression) SpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression) NamedArgumentListExpression(org.codehaus.groovy.ast.expr.NamedArgumentListExpression) MapExpression(org.codehaus.groovy.ast.expr.MapExpression) SpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression) MethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression) ConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression) ClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression) ArgumentListExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression) ListExpression(org.codehaus.groovy.ast.expr.ListExpression) NamedArgumentListExpression(org.codehaus.groovy.ast.expr.NamedArgumentListExpression) NamedPropertyArgsContext(org.apache.groovy.parser.antlr4.GroovyParser.NamedPropertyArgsContext) VariableExpression(org.codehaus.groovy.ast.expr.VariableExpression) AttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression) UnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression) ClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression) ArgumentListExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression) MethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression) TernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression) PropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression) PrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression) PostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression) Expression(org.codehaus.groovy.ast.expr.Expression) UnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression) AnnotationConstantExpression(org.codehaus.groovy.ast.expr.AnnotationConstantExpression) BitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression) MapExpression(org.codehaus.groovy.ast.expr.MapExpression) ConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression) NotExpression(org.codehaus.groovy.ast.expr.NotExpression) EmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression) ConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression) ClassExpression(org.codehaus.groovy.ast.expr.ClassExpression) TupleExpression(org.codehaus.groovy.ast.expr.TupleExpression) MethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression) MapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression) VariableExpression(org.codehaus.groovy.ast.expr.VariableExpression) CastExpression(org.codehaus.groovy.ast.expr.CastExpression) BooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression) LambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression) GStringExpression(org.codehaus.groovy.ast.expr.GStringExpression) ListExpression(org.codehaus.groovy.ast.expr.ListExpression) RangeExpression(org.codehaus.groovy.ast.expr.RangeExpression) NamedArgumentListExpression(org.codehaus.groovy.ast.expr.NamedArgumentListExpression) SpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression) ArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression) BinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression) ElvisOperatorExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression) MethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression) SpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression) DeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression) ClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression) AttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression)

Aggregations

ArrayList (java.util.ArrayList)4 Tuple.tuple (groovy.lang.Tuple.tuple)3 Tuple2 (groovy.lang.Tuple2)3 Tuple3 (groovy.lang.Tuple3)3 CompileStatic (groovy.transform.CompileStatic)3 NonSealed (groovy.transform.NonSealed)3 Sealed (groovy.transform.Sealed)3 Trait (groovy.transform.Trait)3 TupleConstructor (groovy.transform.TupleConstructor)3 BufferedReader (java.io.BufferedReader)3 IOException (java.io.IOException)3 ArrayDeque (java.util.ArrayDeque)3 Arrays (java.util.Arrays)3 Collections (java.util.Collections)3 Deque (java.util.Deque)3 Iterator (java.util.Iterator)3 LinkedHashMap (java.util.LinkedHashMap)3 LinkedList (java.util.LinkedList)3 List (java.util.List)3 Map (java.util.Map)3