Skip to content

Latest commit

 

History

History
48 lines (37 loc) · 902 Bytes

File metadata and controls

48 lines (37 loc) · 902 Bytes
dyvil v0.34.0

Types

type : typeNoVoid | voidType
typeNoVoid : namedType | genericType | nullType | arrayType
           | lambdaType | tupleType | wildcardType | infixType
           | prefixType | postfixType

types : type { comma type }?

namedType : identifierList
genericType : namedType '<' types? '>'

Basic Types

nullType : 'null'
voidType : '(' ')'
wildcardType : '_'

Collection Types

mutability : 'var' | 'final'

tupleType : '(' types ')'
arrayType : '[' mutability? type? ']'
          | type '[' ']' # Java-Style, causes warning
mapType   : '[' mutability? type ':' type ']'

Compound Types

lambdaType : '=>' type
           | typeNoVoid '=>' type
           | '(' types? ')' '=>' type
           | type '.' '(' types? ')' '=>' type

infixType : type identifier type
prefixType : identifier type
postfixType : type identifier