Class RuleDefinition

    • Constructor Detail

      • RuleDefinition

        public RuleDefinition​(String name)
    • Method Detail

      • getName

        public String getName()
      • is

        public RuleDefinition is​(Object... e)
        Description copied from interface: Rule
        Allows to provide definition of a grammar rule.

        Note: this method can be called only once for a rule. If it is called more than once, an IllegalStateException will be thrown.

        Specified by:
        is in interface Rule
        Parameters:
        e - expression of grammar that defines this rule
        Returns:
        this (for method chaining)
      • override

        public RuleDefinition override​(Object... e)
        Description copied from interface: Rule
        Allows to override definition of a grammar rule.

        This method has the same effect as #is(Object), except that it can be called more than once to redefine a rule from scratch.

        Specified by:
        override in interface Rule
        Parameters:
        e - expression of grammar that defines this rule
        Returns:
        this (for method chaining)
      • mock

        public void mock()
        Description copied from interface: Rule
        Utility method used for unit testing in order to dynamically replace the definition of the rule to match as soon as a token whose value equals the name of the rule is encountered.
        Specified by:
        mock in interface Rule
      • skip

        public void skip()
        Description copied from interface: Rule
        Indicates that grammar rule should not lead to creation of AST node - its children should be attached directly to its parent.
        Specified by:
        skip in interface Rule
      • skipIfOneChild

        public void skipIfOneChild()
        Description copied from interface: Rule
        Indicates that grammar rule should not lead to creation of AST node if it has exactly one child.
        Specified by:
        skipIfOneChild in interface Rule
      • hasToBeSkippedFromAst

        public boolean hasToBeSkippedFromAst​(AstNode node)
        Description copied from interface: AstNodeSkippingPolicy
        Some AstNode can be pretty useless and makes a global AST less readable. This method allows to automatically remove those AstNode from the AST.
        Specified by:
        hasToBeSkippedFromAst in interface AstNodeSkippingPolicy
        Parameters:
        node - the node that should or not be removed from the AST
        Returns:
        true if AstNode with this type must be skipped from the AST.
      • getRealAstNodeType

        public AstNodeType getRealAstNodeType()
        Since:
        1.18
      • enableMemoization

        public void enableMemoization()