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 annotationEntry
: "@"? SimpleName{"."} typeArguments? valueArguments? : "@"? ++ SimpleName{"."} typeArguments? valueArguments?
; ;
+5 -5
View File
@@ -126,11 +126,11 @@ atomicExpression
; ;
labelReference labelReference
: "@" LabelName : "@" ++ LabelName
; ;
labelDefinition labelDefinition
: LabelName "@" : LabelName ++ "@"
; ;
literalConstant literalConstant
@@ -246,9 +246,9 @@ valueArguments
jump jump
: "throw" expression : "throw" expression
: "return" labelReference? expression? : "return" ++ labelReference? expression?
: "continue" labelReference? : "continue" ++ labelReference?
: "break" labelReference? : "break" ++ labelReference?
// yield ? // yield ?
; ;
+5 -1
View File
@@ -3,10 +3,14 @@
*/ */
modifiers modifiers
: ("@"? modifier)* : modifier*
; ;
modifier modifier
: "@"? ++ modifierKeyword
;
modifierKeyword
: classModifier : classModifier
: accessModifier : accessModifier
: varianceAnnotation : varianceAnnotation
+2 -1
View File
@@ -17,7 +17,8 @@ Operator `|` denotes _alternative_.<br>
Operator `*` denotes _iteration_ (zero or more).<br> Operator `*` denotes _iteration_ (zero or more).<br>
Operator `+` denotes _iteration_ (one or more).<br> Operator `+` denotes _iteration_ (one or more).<br>
Operator `?` denotes _option_ (zero or one).<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 # Semicolons