3ad4f18e1a
Also drop obsolete comments and inline some trivial rules
124 lines
2.1 KiB
Plaintext
124 lines
2.1 KiB
Plaintext
/**
|
|
### Class members
|
|
*/
|
|
|
|
/*
|
|
class Example(a : Foo, i : Int) : Bar(i), Some {
|
|
|
|
// functions
|
|
abstract fun foo(a : Bar)
|
|
|
|
fun foo(a : Bar) = 0
|
|
|
|
fun foo(a : Bar) = {
|
|
return 0
|
|
}
|
|
|
|
fun foo(a : Bar) { // return type is Unit
|
|
|
|
// properties
|
|
val x : Int = 5
|
|
var y : Double = 7.0d
|
|
var z : String = "SDfsdf" {
|
|
get() = $z + "sdfsd"
|
|
private set(s : String) { $z = s }
|
|
}
|
|
}
|
|
*/
|
|
|
|
memberDeclaration
|
|
: companionObject
|
|
: object
|
|
: function
|
|
: property
|
|
: class
|
|
: typeAlias
|
|
: anonymousInitializer
|
|
: secondaryConstructor
|
|
;
|
|
|
|
anonymousInitializer
|
|
: "init" block
|
|
;
|
|
|
|
companionObject
|
|
: modifiers "companion" "object" SimpleName? (":" delegationSpecifier{","})? classBody?
|
|
;
|
|
|
|
valueParameters
|
|
: "(" functionParameter{","}? ")"
|
|
;
|
|
|
|
functionParameter
|
|
: modifiers ("val" | "var")? parameter ("=" expression)?
|
|
;
|
|
|
|
block
|
|
: "{" statements "}"
|
|
;
|
|
|
|
function
|
|
: modifiers "fun"
|
|
typeParameters?
|
|
(type ".")?
|
|
SimpleName
|
|
typeParameters? valueParameters (":" type)?
|
|
typeConstraints
|
|
functionBody?
|
|
;
|
|
|
|
functionBody
|
|
: block
|
|
: "=" expression
|
|
;
|
|
|
|
variableDeclarationEntry
|
|
: SimpleName (":" type)?
|
|
;
|
|
|
|
multipleVariableDeclarations
|
|
: "(" variableDeclarationEntry{","} ")"
|
|
;
|
|
|
|
property
|
|
: modifiers ("val" | "var")
|
|
typeParameters?
|
|
(type ".")?
|
|
(multipleVariableDeclarations | variableDeclarationEntry)
|
|
typeConstraints
|
|
("by" | "=" expression SEMI?)?
|
|
(getter? setter? | setter? getter?) SEMI?
|
|
;
|
|
/**
|
|
See [Properties and Fields](properties.html)
|
|
*/
|
|
|
|
getter
|
|
: modifiers "get"
|
|
: modifiers "get" "(" ")" (":" type)? functionBody
|
|
;
|
|
|
|
setter
|
|
: modifiers "set"
|
|
: modifiers "set" "(" modifiers (SimpleName | parameter) ")" functionBody
|
|
;
|
|
|
|
parameter
|
|
: SimpleName ":" type
|
|
;
|
|
|
|
object
|
|
: "object" SimpleName primaryConstructor? (":" delegationSpecifier{","})? classBody?
|
|
|
|
secondaryConstructor
|
|
: modifiers "constructor" valueParameters (":" constructorDelegationCall)? block
|
|
;
|
|
|
|
constructorDelegationCall
|
|
: "this" valueArguments
|
|
: "super" valueArguments
|
|
;
|
|
/**
|
|
See [Object expressions and Declarations](object-declarations.html)
|
|
*/
|