blob: a2c92503a58ad25a2141d7d25c6fde723b2869e2 [file] [log] [blame] [edit]
/**
# Syntax
Relevant pages: [Packages](packages.html)
*/
[start]
kotlinFile
: preamble topLevelObject*
;
[start]
script
: preamble expression*
;
preamble
: fileAnnotations? packageHeader? import*
;
fileAnnotations
: fileAnnotation*
;
fileAnnotation
: "@" "file" ":" ("[" unescapedAnnotation+ "]" | unescapedAnnotation)
;
packageHeader
: modifiers "package" SimpleName{"."} SEMI?
;
/**
See [Packages](packages.html)
*/
import
: "import" SimpleName{"."} ("." "*" | "as" SimpleName)? SEMI?
;
/**
See [Imports](packages.html#imports)
*/
topLevelObject
: class
: object
: function
: property
: typeAlias
;
typeAlias
: modifiers "typealias" SimpleName typeParameters? "=" type
;