Class BoxExpressionVisitor
- All Implemented Interfaces:
org.antlr.v4.runtime.tree.ParseTreeVisitor<BoxExpression>,ortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>
Some of the AST generation is complicated by the syntactical ambiguity of the language, where even precedence changes at certain points.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuildAssignmentModifier(ortus.boxlang.parser.antlr.BoxGrammar.AssignmentModifierContext ctx) buildBinOp(ortus.boxlang.parser.antlr.BoxGrammar.BinOpsContext ctx) Visit the relational operator context to generate the AST node for the operator.buildRelOp(ortus.boxlang.parser.antlr.BoxGrammar.RelOpsContext ctx) Visit the relational operator context to generate the AST node for the operator.getter for statement visitorvisitAnnotation(ortus.boxlang.parser.antlr.BoxGrammar.AnnotationContext ctx) visitArgument(ortus.boxlang.parser.antlr.BoxGrammar.ArgumentContext ctx) visitArrayLiteral(ortus.boxlang.parser.antlr.BoxGrammar.ArrayLiteralContext ctx) visitAtoms(ortus.boxlang.parser.antlr.BoxGrammar.AtomsContext ctx) visitAttributeSimple(ortus.boxlang.parser.antlr.BoxGrammar.AttributeSimpleContext ctx) visitClosureFunc(ortus.boxlang.parser.antlr.BoxGrammar.ClosureFuncContext ctx) visitErrorNode(org.antlr.v4.runtime.tree.ErrorNode node) A special node is inserted into the tree when a parser error is encountered.visitExprAdd(ortus.boxlang.parser.antlr.BoxGrammar.ExprAddContext ctx) visitExprAnd(ortus.boxlang.parser.antlr.BoxGrammar.ExprAndContext ctx) visitExprArrayAccess(ortus.boxlang.parser.antlr.BoxGrammar.ExprArrayAccessContext ctx) visitExprArrayLiteral(ortus.boxlang.parser.antlr.BoxGrammar.ExprArrayLiteralContext ctx) visitExprAssign(ortus.boxlang.parser.antlr.BoxGrammar.ExprAssignContext ctx) visitExprAtoms(ortus.boxlang.parser.antlr.BoxGrammar.ExprAtomsContext ctx) visitExprBAnd(ortus.boxlang.parser.antlr.BoxGrammar.ExprBAndContext ctx) visitExprBIF(ortus.boxlang.parser.antlr.BoxGrammar.ExprBIFContext ctx) visitExprBinary(ortus.boxlang.parser.antlr.BoxGrammar.ExprBinaryContext ctx) visitExprBitShift(ortus.boxlang.parser.antlr.BoxGrammar.ExprBitShiftContext ctx) visitExprBor(ortus.boxlang.parser.antlr.BoxGrammar.ExprBorContext ctx) visitExprBXor(ortus.boxlang.parser.antlr.BoxGrammar.ExprBXorContext ctx) visitExprCastAs(ortus.boxlang.parser.antlr.BoxGrammar.ExprCastAsContext ctx) visitExprCat(ortus.boxlang.parser.antlr.BoxGrammar.ExprCatContext ctx) visitExprDotFloat(ortus.boxlang.parser.antlr.BoxGrammar.ExprDotFloatContext ctx) visitExprDotFloatID(ortus.boxlang.parser.antlr.BoxGrammar.ExprDotFloatIDContext ctx) visitExprDotOrColonAccess(ortus.boxlang.parser.antlr.BoxGrammar.ExprDotOrColonAccessContext ctx) visits the Dot accessor operation and generates the relevant AST.visitExprElvis(ortus.boxlang.parser.antlr.BoxGrammar.ExprElvisContext bermudaTriangle) Generate the ELVIS AST node.visitExprEqual(ortus.boxlang.parser.antlr.BoxGrammar.ExprEqualContext ctx) visitExprFunctionCall(ortus.boxlang.parser.antlr.BoxGrammar.ExprFunctionCallContext ctx) visitExprHeadless(ortus.boxlang.parser.antlr.BoxGrammar.ExprHeadlessContext ctx) visitExprIdentifier(ortus.boxlang.parser.antlr.BoxGrammar.ExprIdentifierContext ctx) Visit the identifier context to generate the AST node for the identifier.visitExprIllegalIdentifier(ortus.boxlang.parser.antlr.BoxGrammar.ExprIllegalIdentifierContext ctx) visitExprInstanceOf(ortus.boxlang.parser.antlr.BoxGrammar.ExprInstanceOfContext ctx) visitExprLiterals(ortus.boxlang.parser.antlr.BoxGrammar.ExprLiteralsContext ctx) visitExprMult(ortus.boxlang.parser.antlr.BoxGrammar.ExprMultContext ctx) visitExprNew(ortus.boxlang.parser.antlr.BoxGrammar.ExprNewContext ctx) visitExprNotContains(ortus.boxlang.parser.antlr.BoxGrammar.ExprNotContainsContext ctx) visitExprOr(ortus.boxlang.parser.antlr.BoxGrammar.ExprOrContext ctx) visitExprOutString(ortus.boxlang.parser.antlr.BoxGrammar.ExprOutStringContext ctx) visitExprPostfix(ortus.boxlang.parser.antlr.BoxGrammar.ExprPostfixContext ctx) visitExprPower(ortus.boxlang.parser.antlr.BoxGrammar.ExprPowerContext ctx) visitExprPrecedence(ortus.boxlang.parser.antlr.BoxGrammar.ExprPrecedenceContext ctx) Manufactures an AST node that indicates that the wrapped expression is in parentheses.visitExprPrefix(ortus.boxlang.parser.antlr.BoxGrammar.ExprPrefixContext ctx) visitExprRelational(ortus.boxlang.parser.antlr.BoxGrammar.ExprRelationalContext ctx) visitExprStatInvocable(ortus.boxlang.parser.antlr.BoxGrammar.ExprStatInvocableContext ctx) visitExprTernary(ortus.boxlang.parser.antlr.BoxGrammar.ExprTernaryContext ctx) visitExprUnary(ortus.boxlang.parser.antlr.BoxGrammar.ExprUnaryContext ctx) visitExprVarDecl(ortus.boxlang.parser.antlr.BoxGrammar.ExprVarDeclContext ctx) visitExprXor(ortus.boxlang.parser.antlr.BoxGrammar.ExprXorContext ctx) visitFqn(ortus.boxlang.parser.antlr.BoxGrammar.FqnContext ctx) visitIdentifier(ortus.boxlang.parser.antlr.BoxGrammar.IdentifierContext ctx) visitInvocable(ortus.boxlang.parser.antlr.BoxGrammar.InvocableContext ctx) visitLambdaFunc(ortus.boxlang.parser.antlr.BoxGrammar.LambdaFuncContext ctx) visitLiterals(ortus.boxlang.parser.antlr.BoxGrammar.LiteralsContext ctx) visitNamedArgument(ortus.boxlang.parser.antlr.BoxGrammar.NamedArgumentContext ctx) visitNew(ortus.boxlang.parser.antlr.BoxGrammar.NewContext ctx) visitPositionalArgument(ortus.boxlang.parser.antlr.BoxGrammar.PositionalArgumentContext ctx) visitStringLiteral(ortus.boxlang.parser.antlr.BoxGrammar.StringLiteralContext ctx) visitStructExpression(ortus.boxlang.parser.antlr.BoxGrammar.StructExpressionContext ctx) visitStructKey(ortus.boxlang.parser.antlr.BoxGrammar.StructKeyContext ctx) visitTestExpression(ortus.boxlang.parser.antlr.BoxGrammar.TestExpressionContext ctx) This is here simply to allow tests to resolve a single expression without having to walk exprStamentsMethods inherited from class ortus.boxlang.parser.antlr.BoxGrammarBaseVisitor
visitAccessModifier, visitArgumentList, visitAssert, visitAssignmentModifier, visitBinOps, visitBoxClass, visitBreak, visitCase, visitCatches, visitClassBody, visitClassBodyStatement, visitClassOrInterface, visitComponent, visitComponentAttribute, visitComponentIsland, visitComponentName, visitContinue, visitDo, visitEmptyStatementBlock, visitExprAnonymousFunction, visitExpressionList, visitExprStatAnonymousFunction, visitFinallyBlock, visitFor, visitFunction, visitFunctionOrStatement, visitFunctionParam, visitFunctionParamList, visitFunctionSignature, visitIf, visitImportFQN, visitImportStatement, visitInclude, visitInterface, visitModifier, visitModuleName, visitNormalStatementBlock, visitNot, visitParam, visitPostAnnotation, visitPostAnnotationName, visitPreAnnotation, visitPreFix, visitProperty, visitRelOps, visitRethrow, visitReturn, visitReturnType, visitScript, visitSimpleStatement, visitSpecialComponentName, visitStatement, visitStatementBlock, visitStatementOrBlock, visitStaticInitializer, visitStringLiteralPart, visitStructMember, visitStructMembers, visitSwitch, visitTemplate, visitTemplate_argument, visitTemplate_attribute, visitTemplate_attributeName, visitTemplate_attributeValue, visitTemplate_boxImport, visitTemplate_break, visitTemplate_case, visitTemplate_catchBlock, visitTemplate_comment, visitTemplate_componentName, visitTemplate_continue, visitTemplate_finallyBlock, visitTemplate_function, visitTemplate_genericCloseComponent, visitTemplate_genericOpenCloseComponent, visitTemplate_genericOpenComponent, visitTemplate_if, visitTemplate_include, visitTemplate_interpolatedExpression, visitTemplate_nonInterpolatedText, visitTemplate_output, visitTemplate_rethrow, visitTemplate_return, visitTemplate_script, visitTemplate_set, visitTemplate_statement, visitTemplate_statements, visitTemplate_switch, visitTemplate_switchBody, visitTemplate_textContent, visitTemplate_throw, visitTemplate_try, visitTemplate_unquotedValue, visitTemplate_while, visitTemplate_whitespace, visitThrow, visitTry, visitType, visitWhileMethods inherited from class org.antlr.v4.runtime.tree.AbstractParseTreeVisitor
aggregateResult, defaultResult, shouldVisitNextChild, visit, visitChildren, visitTerminalMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.antlr.v4.runtime.tree.ParseTreeVisitor
visit, visitChildren, visitTerminal
-
Constructor Details
-
BoxExpressionVisitor
-
-
Method Details
-
getStatementVisitor
getter for statement visitor -
visitTestExpression
public BoxExpression visitTestExpression(ortus.boxlang.parser.antlr.BoxGrammar.TestExpressionContext ctx) This is here simply to allow tests to resolve a single expression without having to walk exprStaments- Specified by:
visitTestExpressionin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitTestExpressionin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>- Parameters:
ctx- the parse tree- Returns:
- the expression
-
visitInvocable
- Specified by:
visitInvocablein interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitInvocablein classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprStatInvocable
public BoxExpression visitExprStatInvocable(ortus.boxlang.parser.antlr.BoxGrammar.ExprStatInvocableContext ctx) - Specified by:
visitExprStatInvocablein interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprStatInvocablein classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprPrecedence
public BoxExpression visitExprPrecedence(ortus.boxlang.parser.antlr.BoxGrammar.ExprPrecedenceContext ctx) Manufactures an AST node that indicates that the wrapped expression is in parentheses.Generally, one does not explicitly put this in an AST. If we need to regenerate the source we can see that an expression was parenthesised because the operator precedence will be different. However, in some cases it is useful to have this information in the AST, for instance if we wish to preserve redundant parentheses.
- Specified by:
visitExprPrecedencein interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprPrecedencein classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>- Parameters:
ctx- the parse tree- Returns:
- The AST for the parenthesised expression
-
visitExprUnary
- Specified by:
visitExprUnaryin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprUnaryin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprPostfix
- Specified by:
visitExprPostfixin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprPostfixin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprPrefix
- Specified by:
visitExprPrefixin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprPrefixin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprDotFloat
public BoxExpression visitExprDotFloat(ortus.boxlang.parser.antlr.BoxGrammar.ExprDotFloatContext ctx) - Specified by:
visitExprDotFloatin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprDotFloatin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprDotFloatID
public BoxExpression visitExprDotFloatID(ortus.boxlang.parser.antlr.BoxGrammar.ExprDotFloatIDContext ctx) - Specified by:
visitExprDotFloatIDin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprDotFloatIDin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprIllegalIdentifier
public BoxExpression visitExprIllegalIdentifier(ortus.boxlang.parser.antlr.BoxGrammar.ExprIllegalIdentifierContext ctx) - Specified by:
visitExprIllegalIdentifierin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprIllegalIdentifierin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprDotOrColonAccess
public BoxExpression visitExprDotOrColonAccess(ortus.boxlang.parser.antlr.BoxGrammar.ExprDotOrColonAccessContext ctx) visits the Dot accessor operation and generates the relevant AST.With dot accessors, there some special cases where the left and right are folded into one node rather than encapsulated into a DotAccess. For example method invocations will be seen on the right of x.y() and the invocation AST for y() will have the x reference folded into it.
- Specified by:
visitExprDotOrColonAccessin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprDotOrColonAccessin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>- Parameters:
ctx- the parse tree- Returns:
- the AST for a particular accessor operation
-
visitExprHeadless
public BoxExpression visitExprHeadless(ortus.boxlang.parser.antlr.BoxGrammar.ExprHeadlessContext ctx) - Specified by:
visitExprHeadlessin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprHeadlessin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprBIF
- Specified by:
visitExprBIFin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprBIFin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprPower
- Specified by:
visitExprPowerin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprPowerin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprMult
- Specified by:
visitExprMultin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprMultin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprAdd
- Specified by:
visitExprAddin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprAddin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprBitShift
public BoxExpression visitExprBitShift(ortus.boxlang.parser.antlr.BoxGrammar.ExprBitShiftContext ctx) - Specified by:
visitExprBitShiftin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprBitShiftin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprBinary
- Specified by:
visitExprBinaryin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprBinaryin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprBAnd
- Specified by:
visitExprBAndin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprBAndin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprBXor
- Specified by:
visitExprBXorin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprBXorin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprBor
- Specified by:
visitExprBorin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprBorin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprRelational
public BoxExpression visitExprRelational(ortus.boxlang.parser.antlr.BoxGrammar.ExprRelationalContext ctx) - Specified by:
visitExprRelationalin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprRelationalin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprEqual
- Specified by:
visitExprEqualin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprEqualin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprXor
- Specified by:
visitExprXorin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprXorin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprCat
- Specified by:
visitExprCatin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprCatin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprNotContains
public BoxExpression visitExprNotContains(ortus.boxlang.parser.antlr.BoxGrammar.ExprNotContainsContext ctx) - Specified by:
visitExprNotContainsin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprNotContainsin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprAnd
- Specified by:
visitExprAndin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprAndin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprOr
- Specified by:
visitExprOrin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprOrin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprElvis
public BoxExpression visitExprElvis(ortus.boxlang.parser.antlr.BoxGrammar.ExprElvisContext bermudaTriangle) Generate the ELVIS AST node.- Specified by:
visitExprElvisin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprElvisin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>- Parameters:
bermudaTriangle- the parse tree- Returns:
- The binary operation representing Elvis
-
visitExprInstanceOf
public BoxExpression visitExprInstanceOf(ortus.boxlang.parser.antlr.BoxGrammar.ExprInstanceOfContext ctx) - Specified by:
visitExprInstanceOfin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprInstanceOfin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprCastAs
- Specified by:
visitExprCastAsin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprCastAsin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprTernary
- Specified by:
visitExprTernaryin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprTernaryin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprAssign
- Specified by:
visitExprAssignin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprAssignin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprOutString
public BoxExpression visitExprOutString(ortus.boxlang.parser.antlr.BoxGrammar.ExprOutStringContext ctx) - Specified by:
visitExprOutStringin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprOutStringin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprArrayAccess
public BoxExpression visitExprArrayAccess(ortus.boxlang.parser.antlr.BoxGrammar.ExprArrayAccessContext ctx) - Specified by:
visitExprArrayAccessin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprArrayAccessin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprArrayLiteral
public BoxExpression visitExprArrayLiteral(ortus.boxlang.parser.antlr.BoxGrammar.ExprArrayLiteralContext ctx) - Specified by:
visitExprArrayLiteralin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprArrayLiteralin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprVarDecl
- Specified by:
visitExprVarDeclin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprVarDeclin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitArrayLiteral
public BoxExpression visitArrayLiteral(ortus.boxlang.parser.antlr.BoxGrammar.ArrayLiteralContext ctx) - Specified by:
visitArrayLiteralin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitArrayLiteralin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitAttributeSimple
public BoxExpression visitAttributeSimple(ortus.boxlang.parser.antlr.BoxGrammar.AttributeSimpleContext ctx) - Specified by:
visitAttributeSimplein interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitAttributeSimplein classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitAnnotation
- Specified by:
visitAnnotationin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitAnnotationin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitClosureFunc
- Specified by:
visitClosureFuncin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitClosureFuncin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitLambdaFunc
- Specified by:
visitLambdaFuncin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitLambdaFuncin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprFunctionCall
public BoxExpression visitExprFunctionCall(ortus.boxlang.parser.antlr.BoxGrammar.ExprFunctionCallContext ctx) - Specified by:
visitExprFunctionCallin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprFunctionCallin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitArgument
- Specified by:
visitArgumentin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitArgumentin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitNamedArgument
public BoxExpression visitNamedArgument(ortus.boxlang.parser.antlr.BoxGrammar.NamedArgumentContext ctx) - Specified by:
visitNamedArgumentin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitNamedArgumentin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitPositionalArgument
public BoxExpression visitPositionalArgument(ortus.boxlang.parser.antlr.BoxGrammar.PositionalArgumentContext ctx) - Specified by:
visitPositionalArgumentin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitPositionalArgumentin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitIdentifier
- Specified by:
visitIdentifierin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitIdentifierin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprNew
- Specified by:
visitExprNewin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprNewin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitNew
- Specified by:
visitNewin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitNewin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprLiterals
public BoxExpression visitExprLiterals(ortus.boxlang.parser.antlr.BoxGrammar.ExprLiteralsContext ctx) - Specified by:
visitExprLiteralsin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprLiteralsin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprIdentifier
public BoxExpression visitExprIdentifier(ortus.boxlang.parser.antlr.BoxGrammar.ExprIdentifierContext ctx) Visit the identifier context to generate the AST node for the identifier.TODO: Note that the original code check to build a scope but then other AST constructors just deconstruct it. There may not need to be a separate scope object.
- Specified by:
visitExprIdentifierin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprIdentifierin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>- Parameters:
ctx- the parse tree- Returns:
- Either a BoxIdentifier or BoxScope AST node
-
visitLiterals
- Specified by:
visitLiteralsin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitLiteralsin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitStringLiteral
public BoxExpression visitStringLiteral(ortus.boxlang.parser.antlr.BoxGrammar.StringLiteralContext ctx) - Specified by:
visitStringLiteralin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitStringLiteralin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitStructExpression
public BoxExpression visitStructExpression(ortus.boxlang.parser.antlr.BoxGrammar.StructExpressionContext ctx) - Specified by:
visitStructExpressionin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitStructExpressionin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitStructKey
- Specified by:
visitStructKeyin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitStructKeyin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitExprAtoms
- Specified by:
visitExprAtomsin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitExprAtomsin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitAtoms
- Specified by:
visitAtomsin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitAtomsin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
visitFqn
- Specified by:
visitFqnin interfaceortus.boxlang.parser.antlr.BoxGrammarVisitor<BoxExpression>- Overrides:
visitFqnin classortus.boxlang.parser.antlr.BoxGrammarBaseVisitor<BoxExpression>
-
buildRelOp
Visit the relational operator context to generate the AST node for the operator.As the operations seem to have grown in the telling so to speak, there are some wierd and wonderful combinations that are utterly superfluous even as syntactic sugar. However, as they are in the language, we must deal with them.
- Parameters:
ctx- the parse tree- Returns:
- the operation AST node
-
buildBinOp
Visit the relational operator context to generate the AST node for the operator.As the operations seem to have grown in the telling so to speak, there are some wierd and wonderful combinations that are utterly superfluous even as syntactic sugar. However, as they are in the language, we must deal with them.
- Parameters:
ctx- the parse tree- Returns:
- the operation AST node
-
buildAssignmentModifier
public BoxAssignmentModifier buildAssignmentModifier(ortus.boxlang.parser.antlr.BoxGrammar.AssignmentModifierContext ctx) -
visitErrorNode
A special node is inserted into the tree when a parser error is encountered. Here we provide a visitor to handle such nodes so that we can call the visitor even when the parser rejected the input- Specified by:
visitErrorNodein interfaceorg.antlr.v4.runtime.tree.ParseTreeVisitor<BoxExpression>- Overrides:
visitErrorNodein classorg.antlr.v4.runtime.tree.AbstractParseTreeVisitor<BoxExpression>- Parameters:
node- the error node- Returns:
- a New error node so that AST building can work
-