Class GlobalDataBuilder
- All Implemented Interfaces:
IVoidVisitor
GlobalDataBuilder visitor performs, at the beginning of the JTB processing, some error checking
and builds and stores objects needed by other classes:
- a HashMap (
notTbcNodesHM) of JavaCodeProductions whose nodes must be created ("%" syntax) and of BNFProductions whose nodes must not be created ("!" syntax), - a HashMap (
prodHM) of all JavaCodeProductions and BNFProductions identifiers and their result type, - a list (
retVarInfo) of return variables declarations (for all non "void" JavaCodeProductions for which the node creation has been asked and BNFProductions for which the node creation has not been forbidden) - a HashMap (
tokenHM) of tokens which have a constant regular expression, e.g. invalid input: '<' PLUS : "+" >, which will be used to generate a default constructor, - a HashMap (
nbSubNodesTbcHM) of (ExpansionChoices/Expansion/ExpansionUnit) nodes with their number of sub-nodes to be created.
This visitor 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 ClassesNested classes/interfaces inherited from class DepthFirstVoidVisitor
DepthFirstVoidVisitor.ShouldNotOccurException -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe indicator for BNFProduction in thenotTbcNodesHMandprodHMtablesstatic final StringThe specific regular expression for a token node not to be createdstatic final StringThe indicator for JavaCodeProduction in thenotTbcNodesHMandprodHMtablesfinal JTBOptionsThe global JTB options (not thread safe but used only in read-access)The parser's package name (from the grammar or the command line)The parser name -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetFixedName(String aName) Builds a (class) name with the default prefix and/or suffix, except for the base (class) names.intReturns the count of the nodes to be created below a anExpansion.intReturns the count of the nodes to be created below a anExpansionChoices.intReturns the count of the nodes to be created below a anExpansionUnit.final List<GlobalDataBuilder.RetVarInfo> voidVisits aBNFProductionnode, whose children are the following :voidVisits aClassOrInterfaceTypenode, whose children are the following :voidVisits aCompilationUnitnode, 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 aIdentifierAsStringnode, whose child is the following :voidvisit(JavaCCInput n) Visits aJavaCCInputnode, whose children are the following :voidVisits aJavaCodeProductionnode, whose children are the following :voidVisits aPrimitiveTypenode, whose child is the following :voidvisit(Production n) Visits aProductionnode, whose child is the following :voidVisits aReferenceTypenode, 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 :voidvisit(ResultType n) Visits aResultTypenode, whose child is the following :voidVisits aStringLiteralnode, whose child is the following :voidVisits aTypenode, whose child is the following :voidVisits aTypeArgumentnode, whose child is the following :voidVisits aTypeArgumentsnode, whose children are the following :voidVisits aWildcardBoundsnode, whose child is the following :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, visit, visit, visit, visit
-
Field Details
-
jopt
The global JTB options (not thread safe but used only in read-access) -
parserName
The parser name -
packageName
The parser's package name (from the grammar or the command line) -
JC_IND
The indicator for JavaCodeProduction in thenotTbcNodesHMandprodHMtables- See Also:
-
BNF_IND
The indicator for BNFProduction in thenotTbcNodesHMandprodHMtables- See Also:
-
DONT_CREATE
The specific regular expression for a token node not to be created- See Also:
-
-
Constructor Details
-
GlobalDataBuilder
-
-
Method Details
-
getFixedName
-
visit
Visits aJavaCCInputnode, whose children are the following :f0 -> JavaCCOptions()
f1 -> "PARSER_BEGIN"
f2 -> "("
f3 -> IdentifierAsString()
f4 -> ")"
f5 -> CompilationUnit()
f6 -> "PARSER_END"
f7 -> "("
f8 -> IdentifierAsString()
f9 -> ")"
f10 -> ( Production() )+
f11 -> invalid input: '<' EOF >
s: 1465207473- 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 aCompilationUnitnode, whose children are the following :f0 -> [ PackageDeclaration() ]
f1 -> ( ImportDeclaration() )*
f2 -> ( TypeDeclaration() )*
s: 1761039264- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aResultTypenode, whose child is the following :f0 -> ( %0 "void"
.. .. | %1 Type() )
s: 805291204- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aTypenode, whose child is the following :f0 -> . %0 ReferenceType()
.. .. | %1 PrimitiveType()
s: -1143267570- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aReferenceTypenode, whose child is the following :f0 -> . %0 #0 PrimitiveType()
.. .. . .. #1 ( $0 "[" $1 "]" )+
.. .. | %1 #0 ClassOrInterfaceType()
.. .. . .. #1 ( $0 "[" $1 "]" )*
s: -275468366- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aPrimitiveTypenode, whose child is the following :f0 -> . %0 "boolean"
.. .. | %1 "char"
.. .. | %2 "byte"
.. .. | %3 "short"
.. .. | %4 "int"
.. .. | %5 "long"
.. .. | %6 "float"
.. .. | %7 "double"
s: 427914477- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aClassOrInterfaceTypenode, whose children are the following :f0 -> invalid input: '<' IDENTIFIER >
f1 -> [ TypeArguments() ]
f2 -> ( #0 "." #1 invalid input: '<' IDENTIFIER >
.. .. . #2 [ TypeArguments() ] )*
s: -1178309727- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aTypeArgumentsnode, whose children are the following :f0 -> "invalid input: '<'"
f1 -> TypeArgument()
f2 -> ( #0 "," #1 TypeArgument() )*
f3 -> ">"
s: 131755052- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aTypeArgumentnode, whose child is the following :f0 -> . %0 ReferenceType()
.. .. | %1 #0 "?"
.. .. . .. #1 [ WildcardBounds() ]
s: 36461692- Specified by:
visitin interfaceIVoidVisitor- Overrides:
visitin classDepthFirstVoidVisitor- Parameters:
n- - the node to visit
-
visit
Visits aWildcardBoundsnode, whose child is the following :f0 -> . %0 #0 "extends" #1 ReferenceType()
.. .. | %1 #0 "super" #1 ReferenceType()
s: 122808000- 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 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 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 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 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
-
getNotTbcNodesHM
-
getProdHM
-
getNbSubNodesTbcHM
-
getRetVarInfo
- Returns:
- the list of all return variables information
-
getTokenHM
- Returns:
- * The map of tokens (key = token name, value = regular expression or
DONT_CREATEfor tokens not to be created as Token nodes)
-
getNbSubNodesTbc
Returns the count of the nodes to be created below a anExpansionChoices.- Parameters:
n- - anExpansionChoices- Returns:
- the number of nodes to be created
-
getNbSubNodesTbc
-
getNbSubNodesTbc
Returns the count of the nodes to be created below a anExpansionUnit.- Parameters:
n- - anExpansionUnit- Returns:
- the number of nodes to be created
-