org.eclipse.xtext.serializer.analysis
Interface IGrammarConstraintProvider

All Known Implementing Classes:
GrammarConstraintProvider

public interface IGrammarConstraintProvider

Based on an Xtext grammar, the IGrammarConstraintProvider provides constraints that the semantic model must comply with. The structure of the constraints is as follows:

 XtextGrammar 
 \- 0..n IConstraintContext (one for each ParserRule and AssignedAction) 
    \- 1..n IConstraint (one for each EClass) 
       \- tree IConstraintElement (one for each relevant Group, Alternative, RuleCall and assigned Keyword)
 

Author:
Moritz Eysholdt - Initial contribution and API

Nested Class Summary
static class IGrammarConstraintProvider.ConstraintElementProduction
           
static class IGrammarConstraintProvider.ConstraintElementType
          The ConstraintElementType distinguishes different kinds of IGrammarConstraintProvider.IConstraintElement
static interface IGrammarConstraintProvider.IConstraint
          One constraint defines all conditions one semantic object must comply with.
static interface IGrammarConstraintProvider.IConstraintContext
          A ConstraintContext is defined by a ParserRule or an AssignedAction.
static interface IGrammarConstraintProvider.IConstraintElement
          IConstraintElements form a tree that is in fact a view on the grammar's AbstractElements.
static interface IGrammarConstraintProvider.IFeatureInfo
           
static class IGrammarConstraintProvider.RelationalDependencyType
           
 
Field Summary
static int MAX
           
 
Method Summary
 java.util.List<IGrammarConstraintProvider.IConstraintContext> getConstraints(Grammar context)
          Returns all constraints form this grammar.
 

Field Detail

MAX

static final int MAX
See Also:
Constant Field Values
Method Detail

getConstraints

java.util.List<IGrammarConstraintProvider.IConstraintContext> getConstraints(Grammar context)
Returns all constraints form this grammar. If a constraint belongs to multiple ConstraintContexts, it is important to call this method to ensure there is inly one instance fo this constraint.