mirror of
https://github.com/sigmasternchen/xtext-core
synced 2025-03-16 08:48:55 +00:00
Fixed NodeModelUtils wrt to parser rule fragments
This commit is contained in:
parent
8764c05e56
commit
319163fb7c
2 changed files with 17 additions and 1 deletions
|
@ -254,7 +254,7 @@ public class NodeModelUtils {
|
|||
}
|
||||
sibling = sibling.getNextSibling();
|
||||
}
|
||||
} else {
|
||||
} else if (!GrammarUtil.isEObjectFragmentRuleCall(grammarElement)) {
|
||||
EObject result = findActualSemanticObjectInChildren(node, grammarElement);
|
||||
if (result != null)
|
||||
return result;
|
||||
|
|
|
@ -182,6 +182,22 @@ public class NodeModelUtilsTest extends AbstractXtextTests {
|
|||
assertTrue(object instanceof ParserRule);
|
||||
}
|
||||
|
||||
@Test public void testFindActualSemanticObjectFor_10() 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 ruleName = NodeModelUtils.findLeafNodeAtOffset(NodeModelUtils.getNode(grammar), grammarString.indexOf("Model"));
|
||||
EObject object = NodeModelUtils.findActualSemanticObjectFor(ruleName);
|
||||
assertTrue(object instanceof ParserRule);
|
||||
}
|
||||
|
||||
@Test public void testFindActualSemanticObjectFor_11() throws Exception {
|
||||
String grammarString = "grammar foo.Bar with org.eclipse.xtext.common.Terminals generate foo 'bar' Model<Param>:name=ID;";
|
||||
Grammar grammar = (Grammar) getModel(grammarString);
|
||||
ILeafNode lessThan = NodeModelUtils.findLeafNodeAtOffset(NodeModelUtils.getNode(grammar), grammarString.indexOf("<"));
|
||||
EObject object = NodeModelUtils.findActualSemanticObjectFor(lessThan);
|
||||
assertTrue(object instanceof ParserRule);
|
||||
}
|
||||
|
||||
@Test public void testCompactDump_1() throws Exception {
|
||||
String grammarString = "grammar foo.Bar with org.eclipse.xtext.common.Terminals generate foo 'bar' Model:name=ID;";
|
||||
Grammar grammar = (Grammar) getModel(grammarString);
|
||||
|
|
Loading…
Reference in a new issue