Class AcceptInliner

  • All Implemented Interfaces:
    IVoidVisitor

    public class AcceptInliner
    extends DepthFirstVoidVisitor
    The 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
    • Method Detail

      • visit

        public void visit​(ExpansionChoices n)
        Visits a ExpansionChoices node, whose children are the following :

        f0 -> Expansion()
        f1 -> ( #0 "|" #1 Expansion() )*
        s: -1726831935

        Specified by:
        visit in interface IVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(Expansion n)
        Visits a Expansion node, whose children are the following :

        f0 -> ( #0 "LOOKAHEAD" #1 "(" #2 LocalLookahead() #3 ")" )?
        f1 -> ( ExpansionUnit() )+
        s: -2134365682

        Specified by:
        visit in interface IVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(ExpansionUnit n)
        Visits a ExpansionUnit node, 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 ( &0 $0 IdentifierAsString() $1 Arguments()
        .. .. . .. .. . .. $2 [ "!" ]
        .. .. . .. .. | &1 $0 RegularExpression()
        .. .. . .. .. . .. $1 [ ?0 "." ?1 < IDENTIFIER > ]
        .. .. . .. .. . .. $2 [ "!" ] )
        .. .. | %5 #0 "(" #1 ExpansionChoices() #2 ")"
        .. .. . .. #3 ( &0 "+"
        .. .. . .. .. | &1 "*"
        .. .. . .. .. | &2 "?" )?
        s: 1116287061

        Specified by:
        visit in interface IVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(ExpansionUnitTCF n)
        Visits a ExpansionUnitTCF node, whose children are the following :

        f0 -> "try"
        f1 -> "{"
        f2 -> ExpansionChoices()
        f3 -> "}"
        f4 -> ( #0 "catch" #1 "("
        .. .. . #2 ( Annotation() )*
        .. .. . #3 [ "final" ]
        .. .. . #4 Name() #5 < IDENTIFIER > #6 ")" #7 Block() )*
        f5 -> [ #0 "finally" #1 Block() ]
        s: 1601707097

        Specified by:
        visit in interface IVoidVisitor
        Parameters:
        n - - the node to visit
      • nodeClassComment

        protected java.lang.String nodeClassComment​(INode n,
                                                    java.lang.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).
        Parameters:
        n - - the node for the node class comment
        str - - the extra comment
        Returns:
        the node class comment
      • nodeClassComment

        protected java.lang.String nodeClassComment​(INode n)
        Returns a node class comment (a //jcp followed by the node class short name if global flag set, nothing otherwise).
        Parameters:
        n - - the node for the node class comment
        Returns:
        the node class comment
      • saveToFile

        public final int saveToFile​(java.lang.String outFile)
                             throws java.io.IOException
        Saves the current buffer to an output file.
        Parameters:
        outFile - - the output file
        Returns:
        OK_RC or FILE_EXISTS_RC
        Throws:
        java.io.IOException - if IO problem
      • genJavaBranch

        protected final java.lang.StringBuilder genJavaBranch​(INode n)
        Generates a java node and its subtree with a JavaPrinter.
        Parameters:
        n - - the node to process
        Returns:
        a buffer with the generated source
      • visit

        public void visit​(Token n)
        Prints into the current buffer a Token image and its specials before if global flag set.
        Specified by:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(OptionBinding n)
        Visits a OptionBinding node, whose children are the following :

        f0 -> ( %0 < IDENTIFIER >
        .. .. | %1 "LOOKAHEAD"
        .. .. | %2 "IGNORE_CASE"
        .. .. | %3 "static" )
        f1 -> "="
        f2 -> ( %0 IntegerLiteral()
        .. .. | %1 BooleanLiteral()
        .. .. | %2 StringLiteral() )
        f3 -> ";"
        s: -1998174573

        Specified by:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(Production n)
        Visits a Production node, whose child is the following :

        f0 -> . %0 JavaCodeProduction()
        .. .. | %1 RegularExprProduction()
        .. .. | %2 TokenManagerDecls()
        .. .. | %3 BNFProduction()
        s: -120615333

        Specified by:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(JavaCodeProduction n)
        Visits a JavaCodeProduction node, 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:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(BNFProduction n)
        Visits a BNFProduction node, 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:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(RegularExprProduction n)
        Visits a RegularExprProduction node, whose children are the following :

        f0 -> [ %0 #0 "<" #1 "*" #2 ">"
        .. .. | %1 #0 "<" #1 < IDENTIFIER >
        .. .. . .. #2 ( $0 "," $1 < IDENTIFIER > )*
        .. .. . .. #3 ">" ]
        f1 -> RegExprKind()
        f2 -> [ #0 "[" #1 "IGNORE_CASE" #2 "]" ]
        f3 -> ":"
        f4 -> "{"
        f5 -> RegExprSpec()
        f6 -> ( #0 "|" #1 RegExprSpec() )*
        f7 -> "}"
        s: 484788342

        Specified by:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(RegExprKind n)
        Visits a RegExprKind node, whose child is the following :

        f0 -> . %0 "TOKEN"
        .. .. | %1 "SPECIAL_TOKEN"
        .. .. | %2 "SKIP"
        .. .. | %3 "MORE"
        s: -1874441621

        Specified by:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(RegExprSpec n)
        Visits a RegExprSpec node, whose children are the following :

        f0 -> RegularExpression()
        f1 -> [ "!" ]
        f2 -> [ Block() ]
        f3 -> [ #0 ":" #1 < IDENTIFIER > ]
        s: -1949948808

        Specified by:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(LocalLookahead n)
        Visits a LocalLookahead node, whose children are the following :

        f0 -> [ IntegerLiteral() ]
        f1 -> [ "," ]
        f2 -> [ ExpansionChoices() ]
        f3 -> [ "," ]
        f4 -> [ #0 "{"
        .. .. . #1 [ Expression() ]
        .. .. . #2 "}" ]
        s: -1879920786

        Specified by:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(RegularExpression n)
        Visits a RegularExpression node, whose child is the following :

        f0 -> . %0 StringLiteral()
        .. .. | %1 #0 "<"
        .. .. . .. #1 [ $0 [ "#" ]
        .. .. . .. .. . $1 IdentifierAsString() $2 ":" ]
        .. .. . .. #2 ComplexRegularExpressionChoices() #3 ">"
        .. .. | %2 #0 "<" #1 IdentifierAsString() #2 ">"
        .. .. | %3 #0 "<" #1 "EOF" #2 ">"
        s: 1719627151

        Specified by:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(ComplexRegularExpressionUnit n)
        Visits a ComplexRegularExpressionUnit node, whose child is the following :

        f0 -> . %0 StringLiteral()
        .. .. | %1 #0 "<" #1 IdentifierAsString() #2 ">"
        .. .. | %2 CharacterList()
        .. .. | %3 #0 "(" #1 ComplexRegularExpressionChoices() #2 ")"
        .. .. . .. #3 ( &0 "+"
        .. .. . .. .. | &1 "*"
        .. .. . .. .. | &2 "?"
        .. .. . .. .. | &3 $0 "{" $1 IntegerLiteral()
        .. .. . .. .. . .. $2 [ ?0 ","
        .. .. . .. .. . .. .. . ?1 [ IntegerLiteral() ] ]
        .. .. . .. .. . .. $3 "}" )?
        s: -1507427530

        Specified by:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit
      • visit

        public void visit​(CharacterList n)
        Visits a CharacterList node, whose children are the following :

        f0 -> [ "~" ]
        f1 -> "["
        f2 -> [ #0 CharacterDescriptor()
        .. .. . #1 ( $0 "," $1 CharacterDescriptor() )* ]
        f3 -> "]"
        s: -966448889

        Specified by:
        visit in interface IVoidVisitor
        Overrides:
        visit in class DepthFirstVoidVisitor
        Parameters:
        n - - the node to visit