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());
}
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));
}
Aggregations