Search in sources :

Example 1 with Model

use of org.eclipse.xtext.testlanguages.treeTestLanguage.Model in project xtext-core by eclipse.

the class ParseErrorHandlingTest method testTrailingRecoverableError.

@Test
public void testTrailingRecoverableError() throws Exception {
    with(TreeTestLanguageStandaloneSetup.class);
    String model = "parent ('Teststring') { \n" + "	child ('Teststring'){};\n" + "	child ('Teststring'){};\n" + "};\n" + "};\n" + "\n";
    Resource res = getResourceFromStringAndExpect(model, 1);
    assertEquals(res.getErrors().size(), 1, res.getErrors().size());
    Diagnostic diag = res.getErrors().get(0);
    assertNotNull(diag);
    assertEquals(5, diag.getLine());
    Model parsedModel = (Model) res.getContents().get(0);
    assertNotNull(parsedModel);
    ICompositeNode composite = NodeModelUtils.getNode(parsedModel);
    assertNotNull(composite);
    List<ILeafNode> leafs = Lists.newArrayList(composite.getLeafNodes());
    ILeafNode lastWs = leafs.get(leafs.size() - 1);
    assertTrue(lastWs.isHidden());
    assertNull(lastWs.getSyntaxErrorMessage());
    ILeafNode lastNode = leafs.get(leafs.size() - 2);
    assertFalse(lastNode.isHidden());
    assertNotNull(lastNode);
    assertEquals("};", lastNode.getText());
    assertNotNull(lastNode.getSyntaxErrorMessage());
}
Also used : ILeafNode(org.eclipse.xtext.nodemodel.ILeafNode) XtextResource(org.eclipse.xtext.resource.XtextResource) Resource(org.eclipse.emf.ecore.resource.Resource) Model(org.eclipse.xtext.testlanguages.treeTestLanguage.Model) Diagnostic(org.eclipse.emf.ecore.resource.Resource.Diagnostic) ICompositeNode(org.eclipse.xtext.nodemodel.ICompositeNode) Test(org.junit.Test)

Example 2 with Model

use of org.eclipse.xtext.testlanguages.treeTestLanguage.Model 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)

Aggregations

Model (org.eclipse.xtext.testlanguages.treeTestLanguage.Model)2 EPackage (org.eclipse.emf.ecore.EPackage)1 Resource (org.eclipse.emf.ecore.resource.Resource)1 Diagnostic (org.eclipse.emf.ecore.resource.Resource.Diagnostic)1 Action (org.eclipse.xtext.Action)1 Parameter (org.eclipse.xtext.Parameter)1 ParserRule (org.eclipse.xtext.ParserRule)1 ICompositeNode (org.eclipse.xtext.nodemodel.ICompositeNode)1 ILeafNode (org.eclipse.xtext.nodemodel.ILeafNode)1 XtextResource (org.eclipse.xtext.resource.XtextResource)1 Node (org.eclipse.xtext.testlanguages.treeTestLanguage.Node)1 Test (org.junit.Test)1