Package com.sonar.sslr.impl.matcher
Class RuleDefinition
- java.lang.Object
-
- com.sonar.sslr.impl.matcher.RuleDefinition
-
- All Implemented Interfaces:
AstNodeSkippingPolicy,AstNodeType,Rule,Matcher,GrammarRuleKey,Matcher,CompilableGrammarRule,MemoParsingExpression,ParsingExpression
public class RuleDefinition extends Object implements Rule, AstNodeSkippingPolicy, GrammarRuleKey, CompilableGrammarRule, MemoParsingExpression
This class is not intended to be instantiated or subclassed by clients.
-
-
Constructor Summary
Constructors Constructor Description RuleDefinition(String name)RuleDefinition(GrammarRuleKey ruleKey)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Instruction[]compile(CompilationHandler compiler)Compiles this expression into a sequence of instructions.voidenableMemoization()ParsingExpressiongetExpression()StringgetName()AstNodeTypegetRealAstNodeType()GrammarRuleKeygetRuleKey()booleanhasToBeSkippedFromAst(AstNode node)Some AstNode can be pretty useless and makes a global AST less readable.RuleDefinitionis(Object... e)Allows to provide definition of a grammar rule.voidmock()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.RuleDefinitionoverride(Object... e)Allows to override definition of a grammar rule.voidsetExpression(ParsingExpression expression)booleanshouldMemoize()voidskip()Indicates that grammar rule should not lead to creation of AST node - its children should be attached directly to its parent.voidskipIfOneChild()Indicates that grammar rule should not lead to creation of AST node if it has exactly one child.StringtoString()
-
-
-
Constructor Detail
-
RuleDefinition
public RuleDefinition(String name)
-
RuleDefinition
public RuleDefinition(GrammarRuleKey ruleKey)
-
-
Method Detail
-
getName
public String getName()
-
is
public RuleDefinition is(Object... e)
Description copied from interface:RuleAllows 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.
-
override
public RuleDefinition override(Object... e)
Description copied from interface:RuleAllows 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.
-
mock
public void mock()
Description copied from interface:RuleUtility 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.
-
skip
public void skip()
Description copied from interface:RuleIndicates that grammar rule should not lead to creation of AST node - its children should be attached directly to its parent.
-
skipIfOneChild
public void skipIfOneChild()
Description copied from interface:RuleIndicates that grammar rule should not lead to creation of AST node if it has exactly one child.- Specified by:
skipIfOneChildin interfaceRule
-
hasToBeSkippedFromAst
public boolean hasToBeSkippedFromAst(AstNode node)
Description copied from interface:AstNodeSkippingPolicySome 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:
hasToBeSkippedFromAstin interfaceAstNodeSkippingPolicy- 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
-
getRuleKey
public GrammarRuleKey getRuleKey()
- Specified by:
getRuleKeyin interfaceCompilableGrammarRule
-
getExpression
public ParsingExpression getExpression()
- Specified by:
getExpressionin interfaceCompilableGrammarRule
-
setExpression
public void setExpression(ParsingExpression expression)
- Specified by:
setExpressionin interfaceCompilableGrammarRule
-
compile
public Instruction[] compile(CompilationHandler compiler)
Description copied from interface:ParsingExpressionCompiles this expression into a sequence of instructions.- Specified by:
compilein interfaceParsingExpression
-
shouldMemoize
public boolean shouldMemoize()
- Specified by:
shouldMemoizein interfaceMemoParsingExpression
-
enableMemoization
public void enableMemoization()
-
-