Ich möchte ein Terminal erstellen, das etwas mit ID, aber nicht vollständig übereinstimmen kann. Während IDDefinieren Sie ein Terminal, das eine Untermenge von ID in xtext ist
terminal ID : '^'?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
das Terminal Ich mag würde, ist
terminal TYPE: (('a'..'z'|'A'..'Z')?('a'..'z'|'A'..'Z'|'_'|'0'..'9')*)?
definieren, da TYPE ID übereinstimmen, kann ich Regel-Kennzeichnungsfehler immer bin, was kann ich in diesem Fall tun?
______EDIT__________
Domainmodel :
(elements+=XType)*;
terminal TYPE: ('a'..'z'|'A'..'Z')('a'..'z'|'A'..'Z'|'0'..'9'|'_')*;
MyID:
TYPE | ID
;
XType:
DataType | Entity;
DataType:
'datatype' name=MyID;
Entity:
'entity' name=MyID ('extends' superType=[Entity])? '{'
(features+=Feature)*
'}';
Feature:
(many?='many')? name=MyID ':' type=[XType];
Modell (Basis auf dem Blog Beispiel)
datatype String
entity Blog {
title: String
title2: String
many posts: Post
many Posts: Post
}
entity HasAuthor {
author: String
}
entity Post extends HasAuthor {
title: String
content: String
many comments: Comment
}
entity Comment extends HasAuthor {
content: String
}
Ich bin nicht sicher, was meinst du Oder Sie Art und tun die Prüfung für den geschützten Bereich innerhalb des Validator – Quantico
nur ein Terminal ule genannt ID haben, die Ihre Art und ID vereint und dann vergessen Sie meinen die Beschränkungen Validierung der Attribute, denen Sie ID zuweisen oder eine Datentypregel haben TYPE: ID mit einem IValueConverter, der ValueConverterExceptions bei schlechten Eingaben auslöst –
Blick auf den Validator xtext vorgeneriert es hat eine Regel für Namen von Grüßen, die mit einem Großbuchstaben beginnen, obwohl ID würde erlaube auch Kleinbuchstaben –