namespaces (the new system, supported as of version 0.3.32)
classes:
‘static’, ‘sealed’ & ‘abstract’ classes
‘private’, ‘public’ & ‘protected’ member access
procedures:
‘static’, ‘sealed’ & ‘abstract’ procedures
‘const’ procedures
constructors (currently without initializer lists)
class fields
parameters
input-only parameters
inout parameters
built-in types:
integral types
floating-point types
boolean type
character type
object type
string type
pointers & double pointers
arrays (including dynamic arrays & open arrays)
nominal enums
expressions:
literals
unary operators
binary operators
conditional operator
member selection operator
array operator
procedure call operator
‘new’ operator
chained comparison operators
statements:
assignments
procedure call statement
‘if’ statement
‘loop’ statement
‘iterate’ statement
‘break’ and ‘continue’ statements
increment/decrement statements
variable declarations
standard library:
console output (stdout) support
The compiler accepts the main use of these features in source files,
but for some features the compiler’s semantic checking is not
complete yet. And some details of a feature could still be
unsupported.
This is a list of ‘new’ language features that are more or less
‘defined’ to be an official part of the language, but that are not
yet implemented in the latest release of the compiler:
These things are planned to be eventually added to the language,
in the short or the long term. Not
all of these are equally important. Any feature listed here is not
guaranteed to be actually added in the future.
a switching construct, somewhat like ‘switch’ in C++/Java
explicit type conversions (casting base type to derived type etc.)