Introduce ++ operator into grammar

This commit is contained in:
Denis Zharkov
2015-05-05 12:33:11 +03:00
parent b924f35ed3
commit aa7bae213d
4 changed files with 13 additions and 8 deletions
+1 -1
View File
@@ -12,5 +12,5 @@ annotation
;
annotationEntry
: "@"? SimpleName{"."} typeArguments? valueArguments?
: "@"? ++ SimpleName{"."} typeArguments? valueArguments?
;
+5 -5
View File
@@ -126,11 +126,11 @@ atomicExpression
;
labelReference
: "@" LabelName
: "@" ++ LabelName
;
labelDefinition
: LabelName "@"
: LabelName ++ "@"
;
literalConstant
@@ -246,9 +246,9 @@ valueArguments
jump
: "throw" expression
: "return" labelReference? expression?
: "continue" labelReference?
: "break" labelReference?
: "return" ++ labelReference? expression?
: "continue" ++ labelReference?
: "break" ++ labelReference?
// yield ?
;
+5 -1
View File
@@ -3,10 +3,14 @@
*/
modifiers
: ("@"? modifier)*
: modifier*
;
modifier
: "@"? ++ modifierKeyword
;
modifierKeyword
: classModifier
: accessModifier
: varianceAnnotation
+2 -1
View File
@@ -17,7 +17,8 @@ Operator `|` denotes _alternative_.<br>
Operator `*` denotes _iteration_ (zero or more).<br>
Operator `+` denotes _iteration_ (one or more).<br>
Operator `?` denotes _option_ (zero or one).<br>
alpha`{`beta`}` denotes a nonempty _beta_-separated list of _alpha_'s.
alpha`{`beta`}` denotes a nonempty _beta_-separated list of _alpha_'s. <br>
Operator ``++'' means that no space or comment allowed between operands.
# Semicolons