Search in sources :

Example 6 with ParserRuleFragments

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

the class AbstractFragmentsTest method testReferenceInFragment.

@Test
public void testReferenceInFragment() {
    final ParserRuleFragments fragments = this.parseAndValidate("#1 myName - myName");
    Assert.assertNotNull(fragments);
    Assert.assertEquals("myName", fragments.getElement().getName());
    Assert.assertEquals(fragments.getElement(), fragments.getElement().getRef());
}
Also used : ParserRuleFragments(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.ParserRuleFragments) Test(org.junit.Test)

Example 7 with ParserRuleFragments

use of org.eclipse.xtext.parser.fragments.fragmentTestLanguage.ParserRuleFragments 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 8 with ParserRuleFragments

use of org.eclipse.xtext.parser.fragments.fragmentTestLanguage.ParserRuleFragments 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)

Example 9 with ParserRuleFragments

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

the class AbstractFragmentsTest method testActionAndReference.

@Test
public void testActionAndReference() {
    final ParserRuleFragments fragments = this.parseAndValidate("#4 prev current prev current");
    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) Test(org.junit.Test)

Example 10 with ParserRuleFragments

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

the class AbstractFragmentsTest method parseAndValidate.

protected ParserRuleFragments parseAndValidate(final CharSequence s) {
    try {
        final ParserRuleFragments result = this.parseHelper.parse(s);
        this.validationTestHelper.assertNoIssues(result);
        Resource _eResource = result.eResource();
        final XtextResource resource = ((XtextResource) _eResource);
        final ICompositeNode node = resource.getParseResult().getRootNode();
        this.invariantChecker.checkInvariant(node);
        return result;
    } catch (Throwable _e) {
        throw Exceptions.sneakyThrow(_e);
    }
}
Also used : ParserRuleFragments(org.eclipse.xtext.parser.fragments.fragmentTestLanguage.ParserRuleFragments) XtextResource(org.eclipse.xtext.resource.XtextResource) Resource(org.eclipse.emf.ecore.resource.Resource) ICompositeNode(org.eclipse.xtext.nodemodel.ICompositeNode) XtextResource(org.eclipse.xtext.resource.XtextResource)

Aggregations

ParserRuleFragments (org.eclipse.xtext.parser.fragments.fragmentTestLanguage.ParserRuleFragments)23 Test (org.junit.Test)20 PRFNamed (org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamed)16 PRFNamedWithAction (org.eclipse.xtext.parser.fragments.fragmentTestLanguage.PRFNamedWithAction)13 ICompositeNode (org.eclipse.xtext.nodemodel.ICompositeNode)5 Ignore (org.junit.Ignore)5 EObject (org.eclipse.emf.ecore.EObject)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 Resource (org.eclipse.emf.ecore.resource.Resource)1 XtextResource (org.eclipse.xtext.resource.XtextResource)1