Search in sources :

Example 51 with Action

use of org.eclipse.xtext.Action in project xtext-core by eclipse.

the class TreeTestLanguageSemanticSequencer method sequence.

@Override
public void sequence(ISerializationContext context, EObject semanticObject) {
    EPackage epackage = semanticObject.eClass().getEPackage();
    ParserRule rule = context.getParserRule();
    Action action = context.getAssignedAction();
    Set<Parameter> parameters = context.getEnabledBooleanParameters();
    if (epackage == TreeTestLanguagePackage.eINSTANCE)
        switch(semanticObject.eClass().getClassifierID()) {
            case TreeTestLanguagePackage.MODEL:
                sequence_Model(context, (Model) semanticObject);
                return;
            case TreeTestLanguagePackage.NODE:
                sequence_Node(context, (Node) semanticObject);
                return;
        }
    if (errorAcceptor != null)
        errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
Also used : ParserRule(org.eclipse.xtext.ParserRule) Action(org.eclipse.xtext.Action) Node(org.eclipse.xtext.testlanguages.treeTestLanguage.Node) Model(org.eclipse.xtext.testlanguages.treeTestLanguage.Model) Parameter(org.eclipse.xtext.Parameter) EPackage(org.eclipse.emf.ecore.EPackage)

Example 52 with Action

use of org.eclipse.xtext.Action in project xtext-core by eclipse.

the class XtextValidationTest method testActionAllowed_02.

@Test
public void testActionAllowed_02() throws Exception {
    String grammarAsText = "grammar test with org.eclipse.xtext.common.Terminals\n" + "generate test 'http://test'\n" + "Model: name=ID Fragment;\n" + "fragment Fragment: {Model.prev=current};\n";
    Grammar grammar = (Grammar) getModel(grammarAsText);
    ParserRule rule = (ParserRule) grammar.getRules().get(1);
    Action action = (Action) rule.getAlternatives();
    XtextValidator validator = get(XtextValidator.class);
    ValidatingMessageAcceptor messageAcceptor = new ValidatingMessageAcceptor(action, true, false);
    validator.setMessageAcceptor(messageAcceptor);
    validator.checkAssignedActionAfterAssignment(action);
    messageAcceptor.validate();
}
Also used : ParserRule(org.eclipse.xtext.ParserRule) Action(org.eclipse.xtext.Action) Grammar(org.eclipse.xtext.Grammar) Test(org.junit.Test)

Example 53 with Action

use of org.eclipse.xtext.Action in project xtext-core by eclipse.

the class ConcreteSyntaxValidationTestLanguageSemanticSequencer method sequence.

@Override
public void sequence(ISerializationContext context, EObject semanticObject) {
    EPackage epackage = semanticObject.eClass().getEPackage();
    ParserRule rule = context.getParserRule();
    Action action = context.getAssignedAction();
    Set<Parameter> parameters = context.getEnabledBooleanParameters();
    if (epackage == CsvalidationtestPackage.eINSTANCE)
        switch(semanticObject.eClass().getClassifierID()) {
            case CsvalidationtestPackage.ALT_LIST1:
                sequence_AltList1(context, (AltList1) semanticObject);
                return;
            case CsvalidationtestPackage.ALT_LIST2:
                sequence_AltList2(context, (AltList2) semanticObject);
                return;
            case CsvalidationtestPackage.ALTERNATIVE_MULTIPLICITIES:
                sequence_AlternativeMultiplicities(context, (AlternativeMultiplicities) semanticObject);
                return;
            case CsvalidationtestPackage.ASSIGNED_ACTION:
                if (rule == grammarAccess.getAssignedActionSecondRule()) {
                    sequence_AssignedActionSecond(context, (AssignedAction) semanticObject);
                    return;
                } else if (rule == grammarAccess.getAssignedActionRule()) {
                    sequence_AssignedAction(context, (AssignedAction) semanticObject);
                    return;
                } else if (action == grammarAccess.getAssignedActionAccess().getAssignedActionChildAction_2_0()) {
                    sequence_AssignedAction_AssignedAction_2_0(context, (AssignedAction) semanticObject);
                    return;
                } else
                    break;
            case CsvalidationtestPackage.COMBINATION1:
                sequence_Combination1(context, (Combination1) semanticObject);
                return;
            case CsvalidationtestPackage.COMBINATION2:
                sequence_Combination2(context, (Combination2) semanticObject);
                return;
            case CsvalidationtestPackage.COMBINATION3:
                sequence_Combination3(context, (Combination3) semanticObject);
                return;
            case CsvalidationtestPackage.COMBINATION4:
                sequence_Combination4(context, (Combination4) semanticObject);
                return;
            case CsvalidationtestPackage.EMPTY_ALTERNATIVE_SUB:
                sequence_StaticSimplification(context, (EmptyAlternativeSub) semanticObject);
                return;
            case CsvalidationtestPackage.GROUP_MULTIPLICITIES:
                sequence_GroupMultiplicities(context, (GroupMultiplicities) semanticObject);
                return;
            case CsvalidationtestPackage.HEURISTIC1:
                sequence_Heuristic1(context, (Heuristic1) semanticObject);
                return;
            case CsvalidationtestPackage.LIST1:
                sequence_List1(context, (List1) semanticObject);
                return;
            case CsvalidationtestPackage.LIST2:
                sequence_List2(context, (List2) semanticObject);
                return;
            case CsvalidationtestPackage.LIST3:
                sequence_List3(context, (List3) semanticObject);
                return;
            case CsvalidationtestPackage.LIST4:
                sequence_List4(context, (List4) semanticObject);
                return;
            case CsvalidationtestPackage.LIST5:
                sequence_List5(context, (List5) semanticObject);
                return;
            case CsvalidationtestPackage.MODEL:
                sequence_Model(context, (Model) semanticObject);
                return;
            case CsvalidationtestPackage.SIMPLE_ALTERNATIVE:
                sequence_SimpleAlternative(context, (SimpleAlternative) semanticObject);
                return;
            case CsvalidationtestPackage.SIMPLE_GROUP:
                sequence_SimpleGroup(context, (SimpleGroup) semanticObject);
                return;
            case CsvalidationtestPackage.SIMPLE_MULTIPLICITIES:
                sequence_SimpleMultiplicities(context, (SimpleMultiplicities) semanticObject);
                return;
            case CsvalidationtestPackage.STATIC_SIMPLIFICATION:
                sequence_StaticSimplification(context, (StaticSimplification) semanticObject);
                return;
            case CsvalidationtestPackage.TRANSIENT_OBJECT:
                sequence_TransientObject(context, (TransientObject) semanticObject);
                return;
            case CsvalidationtestPackage.TRANSIENT_OBJECT_SUB:
                sequence_TransientObjectSub(context, (TransientObjectSub) semanticObject);
                return;
            case CsvalidationtestPackage.TRANSIENT_SERIALIZEABLES1:
                sequence_TransientSerializeables1(context, (TransientSerializeables1) semanticObject);
                return;
            case CsvalidationtestPackage.TWO_VERSION:
                if (rule == grammarAccess.getTwoVersionNo1Rule()) {
                    sequence_TwoVersionNo1(context, (TwoVersion) semanticObject);
                    return;
                } else if (rule == grammarAccess.getTwoVersionRule()) {
                    sequence_TwoVersionNo1_TwoVersionNo2(context, (TwoVersion) semanticObject);
                    return;
                } else if (rule == grammarAccess.getTwoVersionNo2Rule()) {
                    sequence_TwoVersionNo2(context, (TwoVersion) semanticObject);
                    return;
                } else
                    break;
            case CsvalidationtestPackage.UNASSIGNED_ACTION1:
                sequence_UnassignedAction1(context, (UnassignedAction1) semanticObject);
                return;
            case CsvalidationtestPackage.UNASSIGNED_ACTION2_SUB:
                sequence_UnassignedAction2(context, (UnassignedAction2Sub) semanticObject);
                return;
            case CsvalidationtestPackage.UNASSIGNED_ACTION2_SUB1:
                sequence_UnassignedAction3(context, (UnassignedAction2Sub1) semanticObject);
                return;
            case CsvalidationtestPackage.UNASSIGNED_ACTION2_SUB2:
                sequence_UnassignedAction3(context, (UnassignedAction2Sub2) semanticObject);
                return;
            case CsvalidationtestPackage.UNASSIGNED_RULE_CALL1_SUB:
                if (rule == grammarAccess.getUnassignedRuleCall1SubRule()) {
                    sequence_UnassignedRuleCall1Sub(context, (UnassignedRuleCall1Sub) semanticObject);
                    return;
                } else if (rule == grammarAccess.getUnassignedRuleCall1Rule()) {
                    sequence_UnassignedRuleCall1_UnassignedRuleCall1Sub(context, (UnassignedRuleCall1Sub) semanticObject);
                    return;
                } else
                    break;
            case CsvalidationtestPackage.UNASSIGNED_RULE_CALL2_SUB_ACTION:
                if (rule == grammarAccess.getUnassignedRuleCall2SubRule()) {
                    sequence_UnassignedRuleCall2Sub(context, (UnassignedRuleCall2SubAction) semanticObject);
                    return;
                } else if (rule == grammarAccess.getUnassignedRuleCall2Rule()) {
                    sequence_UnassignedRuleCall2_UnassignedRuleCall2Sub(context, (UnassignedRuleCall2SubAction) semanticObject);
                    return;
                } else
                    break;
        }
    if (errorAcceptor != null)
        errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
Also used : ParserRule(org.eclipse.xtext.ParserRule) GroupMultiplicities(org.eclipse.xtext.validation.csvalidationtest.GroupMultiplicities) Action(org.eclipse.xtext.Action) UnassignedRuleCall2SubAction(org.eclipse.xtext.validation.csvalidationtest.UnassignedRuleCall2SubAction) AssignedAction(org.eclipse.xtext.validation.csvalidationtest.AssignedAction) TransientSerializeables1(org.eclipse.xtext.validation.csvalidationtest.TransientSerializeables1) Heuristic1(org.eclipse.xtext.validation.csvalidationtest.Heuristic1) SimpleGroup(org.eclipse.xtext.validation.csvalidationtest.SimpleGroup) AlternativeMultiplicities(org.eclipse.xtext.validation.csvalidationtest.AlternativeMultiplicities) TransientObjectSub(org.eclipse.xtext.validation.csvalidationtest.TransientObjectSub) EPackage(org.eclipse.emf.ecore.EPackage) AssignedAction(org.eclipse.xtext.validation.csvalidationtest.AssignedAction) List1(org.eclipse.xtext.validation.csvalidationtest.List1) AltList1(org.eclipse.xtext.validation.csvalidationtest.AltList1) AltList2(org.eclipse.xtext.validation.csvalidationtest.AltList2) List2(org.eclipse.xtext.validation.csvalidationtest.List2) AltList2(org.eclipse.xtext.validation.csvalidationtest.AltList2) AltList1(org.eclipse.xtext.validation.csvalidationtest.AltList1) List3(org.eclipse.xtext.validation.csvalidationtest.List3) List4(org.eclipse.xtext.validation.csvalidationtest.List4) List5(org.eclipse.xtext.validation.csvalidationtest.List5) TransientObject(org.eclipse.xtext.validation.csvalidationtest.TransientObject) SimpleAlternative(org.eclipse.xtext.validation.csvalidationtest.SimpleAlternative) Combination1(org.eclipse.xtext.validation.csvalidationtest.Combination1) Combination2(org.eclipse.xtext.validation.csvalidationtest.Combination2) UnassignedRuleCall2SubAction(org.eclipse.xtext.validation.csvalidationtest.UnassignedRuleCall2SubAction) Combination3(org.eclipse.xtext.validation.csvalidationtest.Combination3) UnassignedAction1(org.eclipse.xtext.validation.csvalidationtest.UnassignedAction1) Combination4(org.eclipse.xtext.validation.csvalidationtest.Combination4) UnassignedAction2Sub(org.eclipse.xtext.validation.csvalidationtest.UnassignedAction2Sub) UnassignedRuleCall1Sub(org.eclipse.xtext.validation.csvalidationtest.UnassignedRuleCall1Sub) EmptyAlternativeSub(org.eclipse.xtext.validation.csvalidationtest.EmptyAlternativeSub) TwoVersion(org.eclipse.xtext.validation.csvalidationtest.TwoVersion) SimpleMultiplicities(org.eclipse.xtext.validation.csvalidationtest.SimpleMultiplicities) Model(org.eclipse.xtext.validation.csvalidationtest.Model) UnassignedAction2Sub2(org.eclipse.xtext.validation.csvalidationtest.UnassignedAction2Sub2) Parameter(org.eclipse.xtext.Parameter) UnassignedAction2Sub1(org.eclipse.xtext.validation.csvalidationtest.UnassignedAction2Sub1) StaticSimplification(org.eclipse.xtext.validation.csvalidationtest.StaticSimplification)

Example 54 with Action

use of org.eclipse.xtext.Action in project xtext-core by eclipse.

the class Bug250313SemanticSequencer method sequence.

@Override
public void sequence(ISerializationContext context, EObject semanticObject) {
    EPackage epackage = semanticObject.eClass().getEPackage();
    ParserRule rule = context.getParserRule();
    Action action = context.getAssignedAction();
    Set<Parameter> parameters = context.getEnabledBooleanParameters();
    if (epackage == Bug250313Package.eINSTANCE)
        switch(semanticObject.eClass().getClassifierID()) {
            case Bug250313Package.CHILD1:
                sequence_Child1(context, (Child1) semanticObject);
                return;
            case Bug250313Package.CHILD2:
                sequence_Child2(context, (Child2) semanticObject);
                return;
            case Bug250313Package.MODEL:
                sequence_Model(context, (Model) semanticObject);
                return;
        }
    if (errorAcceptor != null)
        errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
Also used : ParserRule(org.eclipse.xtext.ParserRule) Action(org.eclipse.xtext.Action) Model(org.eclipse.xtext.valueconverter.bug250313.Model) Parameter(org.eclipse.xtext.Parameter) Child2(org.eclipse.xtext.valueconverter.bug250313.Child2) Child1(org.eclipse.xtext.valueconverter.bug250313.Child1) EPackage(org.eclipse.emf.ecore.EPackage)

Example 55 with Action

use of org.eclipse.xtext.Action in project xtext-core by eclipse.

the class TokenUtil method getTokenOwner.

public EObject getTokenOwner(INode node) {
    if (node.hasDirectSemanticElement())
        return node.getSemanticElement();
    if (node.getParent() != null) {
        if (node.getParent().hasDirectSemanticElement())
            return node.getParent().getSemanticElement();
        EObject parentGrammarElement = node.getParent().getGrammarElement();
        boolean isParser = GrammarUtil.isEObjectRule(parentGrammarElement) || GrammarUtil.isEObjectRuleCall(parentGrammarElement);
        for (INode sibling : node.getParent().getChildren()) if (sibling.hasDirectSemanticElement() && (isParser || sibling.getGrammarElement() instanceof Action))
            return sibling.getSemanticElement();
    }
    return node.getSemanticElement();
}
Also used : INode(org.eclipse.xtext.nodemodel.INode) Action(org.eclipse.xtext.Action) EObject(org.eclipse.emf.ecore.EObject)

Aggregations

Action (org.eclipse.xtext.Action)161 ParserRule (org.eclipse.xtext.ParserRule)145 Parameter (org.eclipse.xtext.Parameter)128 EPackage (org.eclipse.emf.ecore.EPackage)124 EObject (org.eclipse.emf.ecore.EObject)17 RuleCall (org.eclipse.xtext.RuleCall)17 Assignment (org.eclipse.xtext.Assignment)13 AbstractElement (org.eclipse.xtext.AbstractElement)10 EClass (org.eclipse.emf.ecore.EClass)8 INode (org.eclipse.xtext.nodemodel.INode)8 ICompositeNode (org.eclipse.xtext.nodemodel.ICompositeNode)7 AbstractRule (org.eclipse.xtext.AbstractRule)6 Alternatives (org.eclipse.xtext.Alternatives)6 Group (org.eclipse.xtext.Group)6 Keyword (org.eclipse.xtext.Keyword)6 TerminalRule (org.eclipse.xtext.TerminalRule)6 UnorderedGroup (org.eclipse.xtext.UnorderedGroup)6 TypeRef (org.eclipse.xtext.TypeRef)5 CrossReference (org.eclipse.xtext.CrossReference)4 ParserRuleParameters (org.eclipse.xtext.parser.parameters.parametersTestLanguage.ParserRuleParameters)4