Extensions

Toplevel objects
This commit is contained in:
Andrey Breslav
2010-11-19 16:07:43 +03:00
parent 350b4ba1a4
commit 171a5250f8
3 changed files with 40 additions and 2 deletions
+9 -2
View File
@@ -55,7 +55,11 @@ super
;
method
: methodModifier* "fun" SimpleName typeParameters? functionParameters (":" type)? functionBody?
: methodModifier* "fun" functionRest
;
functionRest
: SimpleName typeParameters? functionParameters (":" type)? functionBody?
;
functionParameters
@@ -72,7 +76,10 @@ functionBody
;
property
: propertyModifier* ("val" | "var") SimpleName (":" type)? ("=" expression)?
: propertyModifier* ("val" | "var")
propertyRest
: SimpleName (":" type)? ("=" expression)?
"{" getter? setter? "}"
;
+17
View File
@@ -0,0 +1,17 @@
extension
: completeExtension
: extensionMethod
: extensionProperty
;
completeExtension
: accessModifier? "extension" SimpleName? typeParameters? "for" type classBody?
;
extensionMethod
: accessModifier? "extension" "fun" type "." functionRest
;
extensionProperty
: accessModifier? "extension" propertyRest
;
+14
View File
@@ -0,0 +1,14 @@
jetlFile
: preamble toplevelObject*
;
preamble
: empty
;
toplevelObject
: class
: extension
: method
: property
;