Search in sources :

Example 1 with PRFNamedWithAction

use of org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction in project xtext-core by eclipse.

the class AbstractFragmentTestLanguageExSemanticSequencer 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 == FragmentTestLanguagePackage.eINSTANCE)
        switch(semanticObject.eClass().getClassifierID()) {
            case FragmentTestLanguagePackage.PRF_NAMED:
                if (rule == grammarAccess.getNamedByActionRule()) {
                    sequence_NamedByAction(context, (PRFNamed) semanticObject);
                    return;
                } else if (rule == grammarAccess.getNamedInParenthesesRule()) {
                    sequence_NamedInParentheses(context, (PRFNamed) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFNamedRefFirstRule()) {
                    sequence_PRFNamedFragment_PRFNamedRefFirst(context, (PRFNamed) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFWithPredicateRule()) {
                    sequence_PRFNamedFragment_PRFNamedRef(context, (PRFNamed) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFNamedWithFQNRule()) {
                    sequence_PRFNamedWithFQN(context, (PRFNamed) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFNamedRule() || action == grammarAccess.getPRFNamedWithActionAccess().getPRFNamedWithActionPrevAction_1()) {
                    sequence_PRFNamed_PRFNamedFragment_PRFNamedRef(context, (PRFNamed) semanticObject);
                    return;
                } else
                    break;
            case FragmentTestLanguagePackage.PRF_NAMED_WITH_ACTION:
                if (rule == grammarAccess.getPRFNamedRecursiveFragmentRule()) {
                    sequence_PRFNamedRecursiveFragment_RecursiveFragment(context, (PRFNamedWithAction) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFNamedRecursiveRule()) {
                    sequence_PRFNamedRecursive_RecursiveFromFragment(context, (PRFNamedWithAction) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFNamedWithActionRule()) {
                    sequence_PRFNamedWithAction(context, (PRFNamedWithAction) semanticObject);
                    return;
                } else
                    break;
            case FragmentTestLanguagePackage.PARSER_RULE_FRAGMENTS:
                sequence_ParserRuleFragments(context, (ParserRuleFragments) semanticObject);
                return;
        }
    if (errorAcceptor != null)
        errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
Also used : ParserRule(org.eclipse.xtext.ParserRule) PRFNamedWithAction(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction) Action(org.eclipse.xtext.Action) PRFNamedWithAction(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction) ParserRuleFragments(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.ParserRuleFragments) Parameter(org.eclipse.xtext.Parameter) PRFNamed(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamed) EPackage(org.eclipse.emf.ecore.EPackage)

Example 2 with PRFNamedWithAction

use of org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction in project xtext-core by eclipse.

the class AbstractFragmentTestLanguageSemanticSequencer 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 == FragmentTestLanguagePackage.eINSTANCE)
        switch(semanticObject.eClass().getClassifierID()) {
            case FragmentTestLanguagePackage.PRF_NAMED:
                if (rule == grammarAccess.getNamedByActionRule()) {
                    sequence_NamedByAction(context, (PRFNamed) semanticObject);
                    return;
                } else if (rule == grammarAccess.getNamedInParenthesesRule()) {
                    sequence_NamedInParentheses(context, (PRFNamed) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFNamedRefFirstRule()) {
                    sequence_PRFNamedFragment_PRFNamedRefFirst(context, (PRFNamed) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFWithPredicateRule()) {
                    sequence_PRFNamedFragment_PRFNamedRef(context, (PRFNamed) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFNamedWithFQNRule()) {
                    sequence_PRFNamedWithFQN(context, (PRFNamed) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFNamedRule() || action == grammarAccess.getPRFNamedWithActionAccess().getPRFNamedWithActionPrevAction_1()) {
                    sequence_PRFNamed_PRFNamedFragment_PRFNamedRef(context, (PRFNamed) semanticObject);
                    return;
                } else
                    break;
            case FragmentTestLanguagePackage.PRF_NAMED_WITH_ACTION:
                if (rule == grammarAccess.getPRFNamedRecursiveFragmentRule()) {
                    sequence_PRFNamedRecursiveFragment_RecursiveFragment(context, (PRFNamedWithAction) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFNamedRecursiveRule()) {
                    sequence_PRFNamedRecursive_RecursiveFromFragment(context, (PRFNamedWithAction) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPRFNamedWithActionRule()) {
                    sequence_PRFNamedWithAction(context, (PRFNamedWithAction) semanticObject);
                    return;
                } else
                    break;
            case FragmentTestLanguagePackage.PARSER_RULE_FRAGMENTS:
                sequence_ParserRuleFragments(context, (ParserRuleFragments) semanticObject);
                return;
        }
    if (errorAcceptor != null)
        errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
Also used : ParserRule(org.eclipse.xtext.ParserRule) PRFNamedWithAction(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction) Action(org.eclipse.xtext.Action) PRFNamedWithAction(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction) ParserRuleFragments(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.ParserRuleFragments) Parameter(org.eclipse.xtext.Parameter) PRFNamed(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamed) EPackage(org.eclipse.emf.ecore.EPackage)

Example 3 with PRFNamedWithAction

use of org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction in project xtext-core by eclipse.

the class AbstractFragmentsTest method testActionInFragmentAndReference_02.

@Test
@Ignore("Actions are currently not supported in fragments")
public void testActionInFragmentAndReference_02() {
    final ParserRuleFragments fragments = this.parseAndValidate("#6 prev current current - prev");
    Assert.assertNotNull(fragments);
    final PRFNamed element = fragments.getElement();
    Assert.assertEquals("current", element.getName());
    final PRFNamed prev = ((PRFNamedWithAction) element).getPrev();
    Assert.assertEquals("prev", prev.getName());
    Assert.assertEquals(prev, element.getRef());
    Assert.assertEquals(element, ((PRFNamedWithAction) element).getRef2());
}
Also used : ParserRuleFragments(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.ParserRuleFragments) PRFNamedWithAction(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction) PRFNamed(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamed) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 4 with PRFNamedWithAction

use of org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction in project xtext-core by eclipse.

the class AbstractFragmentsTest method testFragmentRecursive_04.

@Test
public void testFragmentRecursive_04() {
    final ParserRuleFragments fragments = this.parseAndValidate("#11 myName ((myPrev))");
    Assert.assertNotNull(fragments);
    Assert.assertEquals("myName", fragments.getElement().getName());
    PRFNamed _element = fragments.getElement();
    final PRFNamed prev = ((PRFNamedWithAction) _element).getPrev();
    Assert.assertEquals("myPrev", prev.getName());
    final ICompositeNode node = NodeModelUtils.findActualNodeFor(prev);
    Assert.assertEquals("myPrev", node.getText());
    final EObject lookup = NodeModelUtils.findActualSemanticObjectFor(node);
    Assert.assertSame(prev, lookup);
}
Also used : ParserRuleFragments(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.ParserRuleFragments) PRFNamedWithAction(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction) EObject(org.eclipse.emf.ecore.EObject) ICompositeNode(org.eclipse.xtext.nodemodel.ICompositeNode) PRFNamed(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamed) Test(org.junit.Test)

Example 5 with PRFNamedWithAction

use of org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction in project xtext-core by eclipse.

the class AbstractFragmentsTest method testActionInFragmentAndReferenceLoop.

@Test
@Ignore("Actions are currently not supported in fragments")
public void testActionInFragmentAndReferenceLoop() {
    final ParserRuleFragments fragments = this.parseAndValidate("#7 root -> a a -> b b -> c c - root");
    Assert.assertNotNull(fragments);
    PRFNamed element = fragments.getElement();
    while ((element instanceof PRFNamedWithAction)) {
        {
            Assert.assertEquals(element, ((PRFNamedWithAction) element).getRef2());
            element = ((PRFNamedWithAction) element).getPrev();
        }
    }
    Assert.assertEquals(element, element.getRef());
}
Also used : ParserRuleFragments(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.ParserRuleFragments) PRFNamedWithAction(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction) PRFNamed(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamed) Ignore(org.junit.Ignore) Test(org.junit.Test)

Aggregations

PRFNamed (org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamed)13 PRFNamedWithAction (org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction)13 ParserRuleFragments (org.eclipse.xtext.parser.fragments.fragmentTestLanguage.ParserRuleFragments)13 Test (org.junit.Test)11 Ignore (org.junit.Ignore)5 EObject (org.eclipse.emf.ecore.EObject)4 ICompositeNode (org.eclipse.xtext.nodemodel.ICompositeNode)4 EPackage (org.eclipse.emf.ecore.EPackage)2 Action (org.eclipse.xtext.Action)2 Parameter (org.eclipse.xtext.Parameter)2 ParserRule (org.eclipse.xtext.ParserRule)2