From 274cf80336940757365d16e84b3d84e474e4b80f Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 10 Dec 2010 16:35:25 +0300 Subject: [PATCH] Preliminary list of keywords --- grammar/src/class_members.grm | 4 +- grammar/src/lexical.grm | 70 +++++++++++++++++++++++++++++++++++ grammar/src/match.grm | 1 + grammar/src/toplevel.grm | 5 +++ 4 files changed, 78 insertions(+), 2 deletions(-) diff --git a/grammar/src/class_members.grm b/grammar/src/class_members.grm index a8fa20308d4..d0904bc0878 100644 --- a/grammar/src/class_members.grm +++ b/grammar/src/class_members.grm @@ -73,7 +73,7 @@ function ; functionRest - : SimpleName typeParameters? functionParameters (":" type)? functionBody? + : attributes SimpleName typeParameters? functionParameters (":" type)? functionBody? ; functionBody @@ -82,7 +82,7 @@ functionBody ; property - : modifiers "lazy"? ("val" | "var") propertyRest + : modifiers ("val" | "var") propertyRest ; propertyRest diff --git a/grammar/src/lexical.grm b/grammar/src/lexical.grm index 3b463728ef6..b700228cea5 100644 --- a/grammar/src/lexical.grm +++ b/grammar/src/lexical.grm @@ -10,3 +10,73 @@ CharacterLiteral : /*character as in Java*/; StringWithTemplates : /*single-quoted string, $ can be escaped*/; NoEscapeString : /* """-quoted string */; +/* Symbols: + +[](){}<> +, +. +: +<= >= == != === !== ++ - * / % += ++= -= *= /= +++ -- ! +&& || -- may be just & and | +=> +.. +? +*/ + +/* Keywords: +namespace +import +as +type +class +this +val +var +fun +decomposer -- may be soft +extension +for +null +typeof +new +true +false +is +isnot +in +throw +return +break +continue +object +if +else +while +do +match +extension + + +Soft: +wraps -- in a class header +where -- in class, function and type headers +by -- in a class header (Delegation specifier) +lazy -- in a property/parameter declaration +get, set -- in a property definition +abstract +virtual +enum +extendable -- or open +attribute +override +private +public +internal +protected +out +ref +*/ \ No newline at end of file diff --git a/grammar/src/match.grm b/grammar/src/match.grm index 563727f4e96..0f73398fcba 100644 --- a/grammar/src/match.grm +++ b/grammar/src/match.grm @@ -18,6 +18,7 @@ constantPattern : literalConstant ; + tuplePattern : "(" ((SimpleName "=")? pattern{","})? ")" ; diff --git a/grammar/src/toplevel.grm b/grammar/src/toplevel.grm index 84138e07f8a..0ca75e87f61 100644 --- a/grammar/src/toplevel.grm +++ b/grammar/src/toplevel.grm @@ -24,6 +24,7 @@ toplevelObject : extension : function : property + : typedef ; namespace @@ -31,4 +32,8 @@ namespace import* toplevelObject* "}" + ; + +typedef + : modifiers "type" SimpleName typeParameters? "=" type ; \ No newline at end of file