use of org.eclipse.xtext.Keyword in project xtext-core by eclipse.
the class XtextLinkingService method getLinkedMetaModel.
private List<EObject> getLinkedMetaModel(TypeRef context, EReference ref, ILeafNode text) throws IllegalNodeException {
final ICompositeNode parentNode = text.getParent();
BidiIterator<INode> iterator = parentNode.getChildren().iterator();
while (iterator.hasPrevious()) {
INode child = iterator.previous();
if (child instanceof ILeafNode) {
ILeafNode leaf = (ILeafNode) child;
if (text == leaf)
return super.getLinkedObjects(context, ref, text);
if (!(leaf.getGrammarElement() instanceof Keyword) && !leaf.isHidden()) {
IScope scope = getScope(context, ref);
return XtextMetamodelReferenceHelper.findBestMetamodelForType(context, text.getText(), leaf.getText(), scope);
}
}
}
return Collections.emptyList();
}
use of org.eclipse.xtext.Keyword in project xtext-core by eclipse.
the class XtextValueConverters method GrammarID.
@ValueConverter(rule = "GrammarID")
public IValueConverter<String> GrammarID() {
return new AbstractNullSafeConverter<String>() {
@Override
protected String internalToValue(String string, INode node) throws ValueConverterException {
if (node != null) {
StringBuilder result = new StringBuilder();
for (ILeafNode leaf : node.getLeafNodes()) {
if (!leaf.isHidden()) {
if (leaf.getGrammarElement() instanceof Keyword)
result.append(leaf.getText());
else
result.append(ID().toValue(leaf.getText(), leaf));
}
}
return result.toString();
} else {
String[] splitted = string.split("\\.");
StringBuilder result = new StringBuilder(string.length());
for (int i = 0; i < splitted.length; i++) {
if (i != 0)
result.append('.');
result.append(ID().toValue(splitted[i], null));
}
return result.toString();
}
}
@Override
protected String internalToString(String value) {
String[] splitted = value.split("\\.");
StringBuilder result = new StringBuilder(value.length());
for (int i = 0; i < splitted.length; i++) {
if (i != 0)
result.append('.');
result.append(ID().toString(splitted[i]));
}
return result.toString();
}
};
}
use of org.eclipse.xtext.Keyword in project xtext-core by eclipse.
the class XtextValueConverters method RuleID.
@ValueConverter(rule = "RuleID")
public IValueConverter<String> RuleID() {
return new AbstractNullSafeConverter<String>() {
@Override
protected String internalToValue(String string, INode node) throws ValueConverterException {
if (node != null) {
StringBuilder result = new StringBuilder();
for (ILeafNode leaf : node.getLeafNodes()) {
if (!leaf.isHidden()) {
if (leaf.getGrammarElement() instanceof Keyword)
result.append(".");
else
result.append(ID().toValue(leaf.getText(), leaf));
}
}
return result.toString();
} else {
String[] splitted = string.split("\\.");
StringBuilder result = new StringBuilder(string.length());
for (int i = 0; i < splitted.length; i++) {
if (i != 0)
result.append('.');
result.append(ID().toValue(splitted[i], null));
}
return result.toString();
}
}
@Override
protected String internalToString(String value) {
String[] splitted = value.split("\\.");
StringBuilder result = new StringBuilder(value.length());
for (int i = 0; i < splitted.length; i++) {
if (i != 0)
result.append("::");
result.append(ID().toString(splitted[i]));
}
return result.toString();
}
};
}
use of org.eclipse.xtext.Keyword in project xtext-core by eclipse.
the class GrammarParserTest method testPrecedencies_05.
@Test
public void testPrecedencies_05() throws Exception {
UnorderedGroup group = (UnorderedGroup) getModel("name=ID & 'keyword'");
assertNotNull(group);
assertEquals(2, group.getElements().size());
assertTrue(group.getElements().get(0) instanceof Assignment);
assertTrue(group.getElements().get(1) instanceof Keyword);
}
use of org.eclipse.xtext.Keyword in project xtext-core by eclipse.
the class GrammarParserTest method testPrecedencies_04.
@Test
public void testPrecedencies_04() throws Exception {
Group group = (Group) getModel("'keyword' ('keyword' & 'keyword') 'keyword'");
assertNotNull(group);
assertEquals(3, group.getElements().size());
assertTrue(group.getElements().get(0) instanceof Keyword);
assertTrue(group.getElements().get(1) instanceof UnorderedGroup);
assertTrue(group.getElements().get(2) instanceof Keyword);
}
Aggregations