Resolve grammar ambiguities which resulted in ANTLR errors and warnings
Change-Id: I5a942ced046b461cab52272d88f2c66f4f031026
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 2176735..a4caeed 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
@@ -50,7 +50,7 @@
'}' (';')?;
MessageElement:
- Option | Extensions | ComplexType | MessageField | TypeExtension | OneOf;
+ =>Option | Extensions | ComplexType | MessageField | TypeExtension | OneOf;
Range:
from=LONG ('to' to=RangeMax)?;
@@ -73,7 +73,7 @@
'}' (';')?;
GroupElement:
- Option | MessageField | ComplexType | TypeExtension | Extensions;
+ =>Option | MessageField | ComplexType | TypeExtension | Extensions;
OneOf:
(isRepeated?='repeated')? =>'oneof' name=Name '{'
@@ -91,7 +91,7 @@
('[' (fieldOptions+=FieldOption (',' fieldOptions+=FieldOption)*)? ']')? (';')+;
TypeLink:
- ScalarTypeLink | ComplexTypeLink | MapTypeLink;
+ =>ScalarTypeLink | ComplexTypeLink | MapTypeLink;
ScalarTypeLink:
target=ScalarType;
@@ -144,8 +144,8 @@
Option | Rpc | Stream;
Rpc:
- ->'rpc' name=Name '(' (isArgStreaming?='stream')? argType=MessageLink ')'
- 'returns' '(' (isReturnStreaming?='stream')? returnType=MessageLink ')'
+ ->'rpc' name=Name '(' (=>isArgStreaming?='stream')? argType=MessageLink ')'
+ 'returns' '(' (=>isReturnStreaming?='stream')? returnType=MessageLink ')'
(('{' options+=Option* '}') (';')? | (';')+);
Stream:
@@ -265,7 +265,7 @@
true | false;
NumberLink:
- HexNumberLink | LongLink | DoubleLink;
+ HexNumberLink | =>LongLink | DoubleLink;
HexNumberLink:
target=HEX;
@@ -285,7 +285,7 @@
('-')? (DIGIT)+ ('.' (DIGIT)*)? (('e'|'E')('-'|'+')? (DIGIT)+) |
'nan' | 'inf' | '-inf';
-terminal DIGIT:
+terminal fragment DIGIT:
'0'..'9';
StringLink:
@@ -295,10 +295,10 @@
chunks+=CHUNK+;
terminal CHUNK:
- '"' ('\\' ('"' | "'" | '\\' | !('\\' | '"')) | !('\\' | '"'))* '"' |
- "'" ('\\' ('"' | "'" | '\\' | !('\\' | "'")) | !('\\' | "'"))* "'";
+ '"' ('\\' . | !('\\' | '"'))* '"' |
+ "'" ('\\' . | !('\\' | "'"))* "'";
-terminal ID: '^'?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+terminal ID: '^'?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|DIGIT)*;
terminal ML_COMMENT: '/*' -> '*/';
terminal SL_COMMENT: '//' !('\n'|'\r')* ('\r'? '\n')?;
terminal WS: (' '|'\t'|'\r'|'\n')+;