use of org.eclipse.xtext.Assignment in project xtext-core by eclipse.
the class XtextLinkerTest method testNamedParameterAdjustment.
@Test
public void testNamedParameterAdjustment() throws Exception {
StringConcatenation _builder = new StringConcatenation();
_builder.append("grammar test.Lang with org.eclipse.xtext.common.Terminals");
_builder.newLine();
_builder.append("generate test \'http://test\'");
_builder.newLine();
_builder.append("Root<MyParam>: rule=Rule<true>;");
_builder.newLine();
_builder.append("Rule<MyParam>: name=ID child=Root<false>?;");
_builder.newLine();
final String grammarAsString = _builder.toString();
EObject _model = this.getModel(grammarAsString);
final Grammar grammar = ((Grammar) _model);
final ResourceSet resourceSet = grammar.eResource().getResourceSet();
final Resource otherResource = resourceSet.createResource(URI.createURI("other.xtext"));
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("grammar test.SubLang with test.Lang");
_builder_1.newLine();
_builder_1.append("import \'http://test\'");
_builder_1.newLine();
_builder_1.append("Root<MyParam>: rule=super::Rule<true>;");
_builder_1.newLine();
LazyStringInputStream _lazyStringInputStream = new LazyStringInputStream(_builder_1.toString());
otherResource.load(_lazyStringInputStream, null);
EObject _head = IterableExtensions.<EObject>head(otherResource.getContents());
final Grammar subGrammar = ((Grammar) _head);
AbstractRule _head_1 = IterableExtensions.<AbstractRule>head(subGrammar.getRules());
final ParserRule rootRule = ((ParserRule) _head_1);
AbstractRule _last = IterableExtensions.<AbstractRule>last(grammar.getRules());
final ParserRule parentRule = ((ParserRule) _last);
AbstractElement _alternatives = parentRule.getAlternatives();
AbstractElement _last_1 = IterableExtensions.<AbstractElement>last(((Group) _alternatives).getElements());
final Assignment lastAssignment = ((Assignment) _last_1);
AbstractElement _terminal = lastAssignment.getTerminal();
final RuleCall ruleCall = ((RuleCall) _terminal);
final NamedArgument argument = IterableExtensions.<NamedArgument>head(ruleCall.getArguments());
Assert.assertEquals(IterableExtensions.<Parameter>head(rootRule.getParameters()), argument.getParameter());
Condition _value = argument.getValue();
Assert.assertFalse(((LiteralCondition) _value).isTrue());
}
use of org.eclipse.xtext.Assignment in project xtext-core by eclipse.
the class XtextLinkerTest method testImplicitNamedParameterLinking_01.
@Test
public void testImplicitNamedParameterLinking_01() throws Exception {
StringConcatenation _builder = new StringConcatenation();
_builder.append("grammar test.Lang with org.eclipse.xtext.common.Terminals");
_builder.newLine();
_builder.append("generate test \'http://test\'");
_builder.newLine();
_builder.append("Root<MyParam>: rule=Rule<MyParam>;");
_builder.newLine();
_builder.append("Rule<MyParam>: name=ID child=Root<MyParam>?;");
_builder.newLine();
final String grammarAsString = _builder.toString();
EObject _model = this.getModel(grammarAsString);
final Grammar grammar = ((Grammar) _model);
AbstractRule _head = IterableExtensions.<AbstractRule>head(grammar.getRules());
final ParserRule rootRule = ((ParserRule) _head);
AbstractRule _last = IterableExtensions.<AbstractRule>last(grammar.getRules());
final ParserRule lastRule = ((ParserRule) _last);
AbstractElement _alternatives = lastRule.getAlternatives();
AbstractElement _last_1 = IterableExtensions.<AbstractElement>last(((Group) _alternatives).getElements());
final Assignment lastAssignment = ((Assignment) _last_1);
AbstractElement _terminal = lastAssignment.getTerminal();
final RuleCall ruleCall = ((RuleCall) _terminal);
final NamedArgument argument = IterableExtensions.<NamedArgument>head(ruleCall.getArguments());
Assert.assertEquals(IterableExtensions.<Parameter>head(rootRule.getParameters()), argument.getParameter());
Condition _value = argument.getValue();
Assert.assertEquals(IterableExtensions.<Parameter>head(lastRule.getParameters()), ((ParameterReference) _value).getParameter());
}
use of org.eclipse.xtext.Assignment in project xtext-core by eclipse.
the class XtextValidationTest method testEmptyKeyword.
@Test
public void testEmptyKeyword() throws Exception {
String grammarAsText = "grammar test with org.eclipse.xtext.common.Terminals\n" + "generate test 'http://test'\n" + "A: foo='';";
Grammar grammar = (Grammar) getModel(grammarAsText);
XtextValidator validator = get(XtextValidator.class);
ValidatingMessageAcceptor messageAcceptor = new ValidatingMessageAcceptor(null, true, false);
Assignment valueAssignment = (Assignment) grammar.getRules().get(0).getAlternatives();
messageAcceptor.expectedContext(valueAssignment.getTerminal());
configureValidator(validator, messageAcceptor, valueAssignment);
validator.checkKeywordNotEmpty((Keyword) valueAssignment.getTerminal());
messageAcceptor.validate();
}
use of org.eclipse.xtext.Assignment in project xtext-core by eclipse.
the class NodeModelUtilsTest method testFindActualSemanticObjectFor_02.
@Test
public void testFindActualSemanticObjectFor_02() throws Exception {
String grammarString = "grammar foo.Bar with org.eclipse.xtext.common.Terminals generate foo 'bar' Model:((name=ID)*)?;";
Grammar grammar = (Grammar) getModel(grammarString);
ILeafNode star = NodeModelUtils.findLeafNodeAtOffset(NodeModelUtils.getNode(grammar), grammarString.indexOf('*'));
EObject object = NodeModelUtils.findActualSemanticObjectFor(star);
assertTrue(object instanceof Assignment);
ILeafNode questionMark = NodeModelUtils.findLeafNodeAtOffset(NodeModelUtils.getNode(grammar), grammarString.indexOf('?'));
object = NodeModelUtils.findActualSemanticObjectFor(questionMark);
assertTrue(object instanceof Assignment);
}
use of org.eclipse.xtext.Assignment in project xtext-core by eclipse.
the class NodeModelUtilsTest method testFindActualSemanticObjectFor_01.
@Test
public void testFindActualSemanticObjectFor_01() throws Exception {
String grammarString = "grammar foo.Bar with org.eclipse.xtext.common.Terminals generate foo 'bar' Model:((name=ID));";
Grammar grammar = (Grammar) getModel(grammarString);
ILeafNode leafNode = NodeModelUtils.findLeafNodeAtOffset(NodeModelUtils.getNode(grammar), grammarString.indexOf('('));
EObject object = NodeModelUtils.findActualSemanticObjectFor(leafNode);
assertTrue(object instanceof Assignment);
}
Aggregations