Class AcceptInliner
- All Implemented Interfaces:
IVoidVisitor
AcceptInliner visitor (an extension of visitor) is called by
VisitorsGenerator (which calls
genAcceptMethods(StringBuilder, Spacing, UserClassInfo, VisitorInfo) to "inline" the accept
methods on the user classes nodes.This facilitates the user customization work by preparing all the lines of code the user wants to keep or to modify. CODEJAVA
Intermediate variables are generated within the visit methods to walk into the syntax tree of the
production each method visits.
They are of the proper type (always for the NodeList, NodeListOptional,
NodeOptional, NodeSequence, Token types, or the production type if at the first
level), or of the INode type for a production type below the first level.
They are generated (through the LONGNAMES build constant flag) in a long format
(reflecting all the types and levels of the parent variables) or in a short one (reflecting only their
types).
This visitor maintains state (for a grammar), is supposed to be run once and not supposed to be run in parallel threads (on the same grammar).
TESTCASE some to add-
Nested Class Summary
Nested classes/interfaces inherited from class DepthFirstVoidVisitor
DepthFirstVoidVisitor.ShouldNotOccurException -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intThe "BNF" nesting level: incremented/decremented:
for each new nestedExpansionChoices(so starts at 0 (inDepthFirstVoidVisitor.visit(BNFProduction))), and for each new nestedExpansionexcept in anExpansionChoiceswith no choices Used to control spaces / new lines.protected final CommonCodeGeneratorprotected final GlobalDataBuilderTheGlobalDataBuildervisitorprotected StringThe generated variable assignment string to be insertedprotected JavaBranchPrinterTheJavaBranchPrinterprinter to print a java node and its subtreeprotected StringBuilderThe (current) buffer to print intoprotected SpacingThe indentation object -
Method Summary
Modifier and TypeMethodDescriptionprotected final StringBuilderGenerates a java node and its subtree with a JavaPrinter.protected StringReturns a node class comment (a //jcp followed by the node class short name if global flag set, nothing otherwise).protected StringnodeClassComment(INode n, String str) Returns a node class comment with an extra comment (a //jcp followed by the node class short name plus the extra comment if global flag set, nothing otherwise).final intsaveToFile(String outFile) Saves the current buffer to an output file.voidVisits aAccessModifiernode, whose child is the following :voidVisits aBNFProductionnode, whose children are the following :voidVisits aCharacterDescriptornode, whose children are the following :voidVisits aCharacterListnode, whose children are the following :voidVisits aComplexRegularExpressionnode, whose child is the following :voidVisits aComplexRegularExpressionChoicesnode, whose children are the following :voidVisits aComplexRegularExpressionUnitnode, whose child is the following :voidVisits aExpansionnode, whose children are the following :voidVisits aExpansionChoicesnode, whose children are the following :voidVisits aExpansionUnitnode, whose child is the following :voidVisits aExpansionUnitTCFnode, whose children are the following :voidVisits aIdentifierAsStringnode, whose child is the following :voidVisits aIntegerLiteralnode, whose child is the following :voidVisits aJavaCCOptionsnode, whose child is the following :voidVisits aJavaCodeProductionnode, whose children are the following :voidVisits aLocalLookaheadnode, whose children are the following :voidVisits aOptionBindingnode, whose children are the following :voidvisit(Production n) Visits aProductionnode, whose child is the following :voidvisit(RegExprKind n) Visits aRegExprKindnode, whose child is the following :voidvisit(RegExprSpec n) Visits aRegExprSpecnode, whose children are the following :voidVisits aRegularExpressionnode, whose child is the following :voidVisits aRegularExprProductionnode, whose children are the following :voidVisits aStringLiteralnode, whose child is the following :voidVisits aTokenManagerDeclsnode, whose children are the following :voidPrints into the current buffer a Token image and its specials before if global flag set.Methods inherited from class DepthFirstVoidVisitor
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
Field Details
-
gdbv
TheGlobalDataBuildervisitor -
ccg
-
sb
The (current) buffer to print into -
spc
The indentation object -
jbp
TheJavaBranchPrinterprinter to print a java node and its subtree -
gvaStr
The generated variable assignment string to be inserted -
bnfLvl
protected int bnfLvlThe "BNF" nesting level: incremented/decremented:
- for each new nested
ExpansionChoices(so starts at 0 (inDepthFirstVoidVisitor.visit(BNFProduction))), and - for each new nested
Expansionexcept in anExpansionChoiceswith no choices
- for each new nested
-
-
Method Details
-
visit
Visits aExpansionChoicesnode, whose children are the following :f0 -> Expansion()
f1 -> ( #0 "|" #1 Expansion() )*
s: -1726831935- Specified by:
visitin interfaceIVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aExpansionnode, whose children are the following :f0 -> ( #0 "LOOKAHEAD" #1 "(" #2 LocalLookahead() #3 ")" )?
f1 -> ( ExpansionUnit() )+
s: -2134365682- Specified by:
visitin interfaceIVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aExpansionUnitnode, whose child is the following :f0 -> . %0 #0 "LOOKAHEAD" #1 "(" #2 LocalLookahead() #3 ")"
.. .. | %1 Block()
.. .. | %2 #0 "[" #1 ExpansionChoices() #2 "]"
.. .. | %3 ExpansionUnitTCF()
.. .. | %4 #0 [ $0 PrimaryExpression() $1 "=" ]
.. .. . .. #1 ( invalid input: '&'0 $0 IdentifierAsString() $1 Arguments()
.. .. . .. .. . .. $2 [ "!" ]
.. .. . .. .. | invalid input: '&'1 $0 RegularExpression()
.. .. . .. .. . .. $1 [ ?0 "." ?1 invalid input: '<' IDENTIFIER > ]
.. .. . .. .. . .. $2 [ "!" ] )
.. .. | %5 #0 "(" #1 ExpansionChoices() #2 ")"
.. .. . .. #3 ( invalid input: '&'0 "+"
.. .. . .. .. | invalid input: '&'1 "*"
.. .. . .. .. | invalid input: '&'2 "?" )?
s: 1116287061- Specified by:
visitin interfaceIVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aExpansionUnitTCFnode, whose children are the following :f0 -> "try"
f1 -> "{"
f2 -> ExpansionChoices()
f3 -> "}"
f4 -> ( #0 "catch" #1 "("
.. .. . #2 ( Annotation() )*
.. .. . #3 [ "final" ]
.. .. . #4 Name() #5 invalid input: '<' IDENTIFIER > #6 ")" #7 Block() )*
f5 -> [ #0 "finally" #1 Block() ]
s: 1601707097- Specified by:
visitin interfaceIVoidVisitor- Parameters:
n- - the node to visit
-
nodeClassComment
Returns a node class comment with an extra comment (a //jcp followed by the node class short name plus the extra comment if global flag set, nothing otherwise).- Parameters:
n- - the node for the node class commentstr- - the extra comment- Returns:
- the node class comment
-
nodeClassComment
-
saveToFile
Saves the current buffer to an output file.- Parameters:
outFile- - the output file- Returns:
- OK_RC or FILE_EXISTS_RC
- Throws:
IOException- if IO problem
-
genJavaBranch
Generates a java node and its subtree with a JavaPrinter.- Parameters:
n- - the node to process- Returns:
- a buffer with the generated source
-
visit
Prints into the current buffer a Token image and its specials before if global flag set.- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aJavaCCOptionsnode, whose child is the following :f0 -> [ #0 "options" #1 "{"
.. .. . #2 ( OptionBinding() )*
.. .. . #3 "}" ]
s: -1270729337- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aOptionBindingnode, whose children are the following :f0 -> ( %0 invalid input: '<' IDENTIFIER >
.. .. | %1 "LOOKAHEAD"
.. .. | %2 "IGNORE_CASE"
.. .. | %3 "static" )
f1 -> "="
f2 -> ( %0 IntegerLiteral()
.. .. | %1 BooleanLiteral()
.. .. | %2 StringLiteral() )
f3 -> ";"
s: -1998174573- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aProductionnode, whose child is the following :f0 -> . %0 JavaCodeProduction()
.. .. | %1 RegularExprProduction()
.. .. | %2 TokenManagerDecls()
.. .. | %3 BNFProduction()
s: -120615333- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aJavaCodeProductionnode, whose children are the following :f0 -> "JAVACODE"
f1 -> AccessModifier()
f2 -> ResultType()
f3 -> IdentifierAsString()
f4 -> FormalParameters()
f5 -> [ #0 "throws" #1 Name()
.. .. . #2 ( $0 "," $1 Name() )* ]
f6 -> [ "%" ]
f7 -> Block()
s: -763138104- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aBNFProductionnode, whose children are the following :f0 -> AccessModifier()
f1 -> ResultType()
f2 -> IdentifierAsString()
f3 -> FormalParameters()
f4 -> [ #0 "throws" #1 Name()
.. .. . #2 ( $0 "," $1 Name() )* ]
f5 -> [ "!" ]
f6 -> ":"
f7 -> Block()
f8 -> "{"
f9 -> ExpansionChoices()
f10 -> "}"
s: 1323482450- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aAccessModifiernode, whose child is the following :f0 -> ( %0 "public"
.. .. | %1 "protected"
.. .. | %2 "private"
.. .. | %3 "final" )*
s: -1053437682- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aRegularExprProductionnode, whose children are the following :f0 -> [ %0 #0 "invalid input: '<'" #1 "*" #2 ">"
.. .. | %1 #0 "invalid input: '<'" #1 invalid input: '<' IDENTIFIER >
.. .. . .. #2 ( $0 "," $1 invalid input: '<' IDENTIFIER > )*
.. .. . .. #3 ">" ]
f1 -> RegExprKind()
f2 -> [ #0 "[" #1 "IGNORE_CASE" #2 "]" ]
f3 -> ":"
f4 -> "{"
f5 -> RegExprSpec()
f6 -> ( #0 "|" #1 RegExprSpec() )*
f7 -> "}"
s: 484788342- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aTokenManagerDeclsnode, whose children are the following :f0 -> "TOKEN_MGR_DECLS"
f1 -> ":"
f2 -> ClassOrInterfaceBody()
s: -1566997219- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aRegExprKindnode, whose child is the following :f0 -> . %0 "TOKEN"
.. .. | %1 "SPECIAL_TOKEN"
.. .. | %2 "SKIP"
.. .. | %3 "MORE"
s: -1874441621- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aRegExprSpecnode, whose children are the following :f0 -> RegularExpression()
f1 -> [ "!" ]
f2 -> [ Block() ]
f3 -> [ #0 ":" #1 invalid input: '<' IDENTIFIER > ]
s: -1949948808- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aLocalLookaheadnode, whose children are the following :f0 -> [ IntegerLiteral() ]
f1 -> [ "," ]
f2 -> [ ExpansionChoices() ]
f3 -> [ "," ]
f4 -> [ #0 "{"
.. .. . #1 [ Expression() ]
.. .. . #2 "}" ]
s: -1879920786- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aRegularExpressionnode, whose child is the following :f0 -> . %0 StringLiteral()
.. .. | %1 #0 "invalid input: '<'"
.. .. . .. #1 [ $0 [ "#" ]
.. .. . .. .. . $1 IdentifierAsString() $2 ":" ]
.. .. . .. #2 ComplexRegularExpressionChoices() #3 ">"
.. .. | %2 #0 "invalid input: '<'" #1 IdentifierAsString() #2 ">"
.. .. | %3 #0 "invalid input: '<'" #1 "EOF" #2 ">"
s: 1719627151- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aComplexRegularExpressionChoicesnode, whose children are the following :f0 -> ComplexRegularExpression()
f1 -> ( #0 "|" #1 ComplexRegularExpression() )*
s: -1240933595- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aComplexRegularExpressionnode, whose child is the following :f0 -> ( ComplexRegularExpressionUnit() )+
s: 896313544- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aComplexRegularExpressionUnitnode, whose child is the following :f0 -> . %0 StringLiteral()
.. .. | %1 #0 "invalid input: '<'" #1 IdentifierAsString() #2 ">"
.. .. | %2 CharacterList()
.. .. | %3 #0 "(" #1 ComplexRegularExpressionChoices() #2 ")"
.. .. . .. #3 ( invalid input: '&'0 "+"
.. .. . .. .. | invalid input: '&'1 "*"
.. .. . .. .. | invalid input: '&'2 "?"
.. .. . .. .. | invalid input: '&'3 $0 "{" $1 IntegerLiteral()
.. .. . .. .. . .. $2 [ ?0 ","
.. .. . .. .. . .. .. . ?1 [ IntegerLiteral() ] ]
.. .. . .. .. . .. $3 "}" )?
s: -1507427530- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aCharacterListnode, whose children are the following :f0 -> [ "~" ]
f1 -> "["
f2 -> [ #0 CharacterDescriptor()
.. .. . #1 ( $0 "," $1 CharacterDescriptor() )* ]
f3 -> "]"
s: -966448889- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aCharacterDescriptornode, whose children are the following :f0 -> StringLiteral()
f1 -> [ #0 "-" #1 StringLiteral() ]
s: 895087809- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aIdentifierAsStringnode, whose child is the following :f0 -> invalid input: '<' IDENTIFIER >
s: -1580059612- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aIntegerLiteralnode, whose child is the following :f0 -> invalid input: '<' INTEGER_LITERAL >
s: -1048223857- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aStringLiteralnode, whose child is the following :f0 -> invalid input: '<' STRING_LITERAL >
s: 241433948- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-