aboutsummaryrefslogtreecommitdiff
path: root/docs/SyntaxSummary.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/SyntaxSummary.txt')
-rw-r--r--docs/SyntaxSummary.txt19
1 files changed, 10 insertions, 9 deletions
diff --git a/docs/SyntaxSummary.txt b/docs/SyntaxSummary.txt
index d89eca57a..b1ba3216d 100644
--- a/docs/SyntaxSummary.txt
+++ b/docs/SyntaxSummary.txt
@@ -133,11 +133,9 @@ grammar.
| `do' Expr [semi] `while' Expr DoWhile(expr, cond)
| `try' Expr Catches [`finally' Expr] Try(expr, catches, expr?)
| `try' Expr [`finally' Expr] Try(expr, Nil, expr?)
- | `for' (`(' Enumerators `)' | `{' Enumerators `}') ForYield(enums, expr)
- {nl} [`yield'] Expr ForDo(enums, expr)
- | `for' Enumerators (`do' Expr | `yield' Expr)
| `throw' Expr Throw(expr)
| `return' [Expr] Return(expr?)
+ | ForExpr
| [SimpleExpr `.'] id `=' Expr Assign(expr, expr)
| SimpleExpr1 ArgumentExprs `=' Expr Assign(expr, expr)
| PostfixExpr [Ascription]
@@ -175,11 +173,15 @@ grammar.
ResultExpr ::= Expr1
| (Bindings | ([`implicit'] id | `_') `:' ) `=>' Block
Function(args, block) // block starts at =>
+ ForExpr ::= `for' (`(' Enumerators `)' | `{' Enumerators `}') ForYield(enums, expr)
+ {nl} [`yield'] Expr ForDo(enums, expr)
+ | `for' Enumerators (`do' Expr | `yield' Expr)
+
Enumerators ::= Generator {semi Enumerator | Guard}
Enumerator ::= Generator
| Guard
| Pattern1 `=' Expr GenAlias(pat, expr)
- Generator ::= Pattern `<-' Expr GenFrom(pat, expr)
+ Generator ::= Pattern1 `<-' Expr GenFrom(pat, expr)
Guard ::= `if' PostfixExpr
CaseClauses ::= CaseClause { CaseClause }
@@ -242,8 +244,7 @@ ac | XmlPattern
AccessModifier ::= (`private' | `protected') [AccessQualifier]
AccessQualifier ::= `[' (id | `this') `]'
- Annotation ::= `@' SimpleType {ArgumentExprs}
- ConstrAnnotation ::= `@' SimpleType ArgumentExprs Apply(tpe, args)
+ Annotation ::= `@' SimpleType {ArgumentExprs} Apply(tpe, args)
TemplateBody ::= [nl] `{' [SelfType] TemplateStat {semi TemplateStat} `} (self, stats)
TemplateStat ::= Import
@@ -287,9 +288,9 @@ ac | XmlPattern
TmplDef ::= ([`case'] `class' | `trait') ClassDef
| [`case'] `object' ObjectDef
ClassDef ::= id [ClsTypeParamClause] ClassDef(mods, name, tparams, templ) //
- with DefDef(_, <init>, Nil, vparamss, EmptyTree, EmptyTree) as first stat
- {ConstrAnnotation} [AccessModifier]
- ClsParamClauses TemplateOpt
+ [ConstrMods] ClsParamClauses TemplateOpt with DefDef(_, <init>, Nil, vparamss, EmptyTree, EmptyTree) as first stat
+ ConstrMods ::= AccessModifier
+ | Annotation {Annotation} (AccessModifier | `this')
ObjectDef ::= id TemplateOpt ModuleDef(mods, name, template) // no constructor
TemplateOpt ::= [`extends' Template | [nl] TemplateBody]
Template ::= ConstrApps [TemplateBody] | TemplateBody Template(constr, parents, self, stats)