Fixed: [Issue 92] Enum Value Options result in a syntax error.
Added support for field options to enum literals.
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext
index e5f7485..8386c6d 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext
@@ -83,15 +83,6 @@
modifier=Modifier type=AbstractTypeRef name=Name '=' index=(INT | HEX)
('[' fieldOptions+=FieldOption (',' fieldOptions+=FieldOption)* ']')? ';';
-FieldOption:
- BuiltInFieldOption | CustomFieldOption;
-
-BuiltInFieldOption:
- name=Name '=' value=ValueRef;
-
-CustomFieldOption:
- '(' name=QualifiedName ')' '=' value=ValueRef;
-
enum Modifier:
required
| optional
@@ -180,7 +171,17 @@
Option | Literal;
Literal:
- name=Name '=' index=(INT | HEX) ';';
+ name=Name '=' index=(INT | HEX)
+ ('[' fieldOptions+=FieldOption (',' fieldOptions+=FieldOption)* ']')? ';';
+
+FieldOption:
+ BuiltInFieldOption | CustomFieldOption;
+
+BuiltInFieldOption:
+ name=Name '=' value=ValueRef;
+
+CustomFieldOption:
+ '(' name=QualifiedName ')' '=' value=ValueRef;
terminal HEX returns ecore::EInt:
'0x' (NUMBER | 'a'..'f' | 'A'..'F')+;