public ISerializationDiagnostic createBacktrackingFailedDiagnostic(SerializableObject semanticObject, EObject context, Nfa<ISemState> nfa) { GrammarElementTitleSwitch ele2str = new GrammarElementTitleSwitch().showAssignments().setValueForNull(null); ProductionStringFactory<AbstractElement> grammarFactory = new ProductionStringFactory<AbstractElement>(ele2str); String grammar = new NfaToProduction().nfaToGrammar(nfa, new GetGrammarEle(), grammarFactory); StringBuilder msg = new StringBuilder(); msg.append("Could not serialize EObject via backtracking.\n"); msg.append("Constraint: " + grammar + "\n"); msg.append(semanticObject.getValuesString()); return new SerializationDiagnostic(BACKTRACKING_FAILED, semanticObject.getEObject(), context, msg.toString()); }
@Override public String createForSequentialChildren(boolean many, boolean optional, Iterable<String> children) { children = Iterables.filter(children, Predicates.notNull()); if (many || optional) return "(" + Joiner.on(" ").join(children) + ")" + card(many, optional); return Joiner.on(" ").join(children) + card(many, optional); }
public String createForSequentialChildren(boolean many, boolean optional, Iterable<String> children) { children = Iterables.filter(children, Predicates.notNull()); if (many || optional) return "(" + Joiner.on(" ").join(children) + ")" + card(many, optional); return Joiner.on(" ").join(children) + card(many, optional); }
@Override public String createForUnordertedChildren(boolean many, boolean optional, Iterable<String> children) { List<String> childrenSorted = Lists.newArrayList(Iterables.filter(children, Predicates.notNull())); Collections.sort(childrenSorted); return "(" + Joiner.on(" & ").join(childrenSorted) + ")" + card(many, optional); }
public String createForUnordertedChildren(boolean many, boolean optional, Iterable<String> children) { List<String> childrenSorted = Lists.newArrayList(Iterables.filter(children, Predicates.notNull())); Collections.sort(childrenSorted); return "(" + Joiner.on(" & ").join(childrenSorted) + ")" + card(many, optional); }
@Override public String createForAlternativeChildren(boolean many, boolean optional, Iterable<String> children) { List<String> childrenSorted = Lists.newArrayList(Iterables.filter(children, Predicates.notNull())); Collections.sort(childrenSorted); return "(" + Joiner.on(" | ").join(childrenSorted) + ")" + card(many, optional); }
public String createForAlternativeChildren(boolean many, boolean optional, Iterable<String> children) { List<String> childrenSorted = Lists.newArrayList(Iterables.filter(children, Predicates.notNull())); Collections.sort(childrenSorted); return "(" + Joiner.on(" | ").join(childrenSorted) + ")" + card(many, optional); }