10. Static Language Reference

10.1. Types

static-type void
static-type int
static-type uint
static-type bool
static-type double
static-type float
static-type int8
static-type int16
static-type int32
static-type int64
static-type uint8
static-type uint16
static-type uint32
static-type uint64
static-type opaque
static-type rawstring

10.2. Symbols

var NULL
var static-ast
var static-compile-settings
var epsilon-float
var epsilon-double

10.3. Macros

infix-macro ( return-type <-([ argument-type ... ]))
Precedence:800
Associativity:>
macro ( struct name expression ... )
Parameters:
  • name – if symbolic, a declaration in the current scope, otherwise an expression expected to resolve to a string.
macro ( <- return-type ([ argument-type ... ]))
macro ( offsetof type name )
macro ( & x )
macro ( static-quote expression )
macro ( const [ name ] : type init ... )
macro ( static [ name ] : type [ init ... ])
macro ( static [ name ]([ argument ... ]) : type expression ... )
macro ( static name ( * ) static-function ... )
macro ( static-macro function )
macro ( static-macro [ name ]([ argument ... ]) expression ... )
macro ( static-intrinsic function )
macro ( static-intrinsic [ name ]([ argument ... ]) expression ... )

10.4. Struct Syntax Macros

symbol-prefix &symbol
infix-macro ( name : type )
Precedence:50
Associativity:<
infix-macro ( return-type <--([ argument-type ... ]))
Precedence:800
Associativity:>
macro ( union expression ... )
macro ( metamethod name ([ arguments ... ]) : type expression ... )
macro ( macro-metamethod name ([ arguments ... ]) expression ... )
macro ( method name ([ arguments ... ]) : type expression ... )
macro ( method name ( * ) expression ... )
macro ( field name type )
macro ( using field-definition )

10.5. Static Symbol Prefix Macros

static-symbol-prefix & symbol
static-symbol-prefix *symbol

10.6. Static Macros

static-macro ( escape expression )
static-macro ( cloop variable-name ( start stop step ) expression ... )
static-macro ( alias-cast type expression )

10.7. Functions

function ( arrayof object ... )
function ( vectorof object ... )
function ( string-array string ... )
function ( byte-offset count )
function ( overload function ... )
function ( static-global type init )
function ( static-symbol type name )
function ( static-type? object )
function ( static-list? object )
function ( static-rawlist? object )
function ( static-function? object )
function ( static-function-definition? object )
function ( static-constant? object )
function ( static-macro? object )
function ( static-quote? object )
function ( static-symbol? object )
function ( static-newlist [ argument ... ])
function ( static-new type [ init ... ])
function ( static-constant object )
function ( static-offsetof struct name )
function ( static-build filename [ filetype ] functiontable [ arguments target ])
function ( c-require filename [ compiler-options ])
function ( c-define c-source-string [ compiler-options ])
function ( static-list-insert list [ index ] element )
function ( static-ast? object )
function ( static-trace object )
function ( void? object )
function ( static-functype argument-list return-type )
function ( static-struct name field-list )
function ( static-field name type )
function ( tuple [ type ... ])
function ( vector type count )
function ( ^& type )
function ( cast type object )
function ( static-typeof object )
function ( sizeof object )
function ( static-macro-fallback macro-function lua-function )
function ( float== a b )

10.7.1. AST Node Constructors

function ( static-arrayof type expression-list )
function ( static-vectorof type expression-list )
function ( static-tuple expression-list )
function ( static-sizeof-op expression )
function ( static-op return-type op-name argument-list )
function ( static-defer expression )
function ( static-call function [ argument ... ])
function ( static-cast type argument-list )
function ( static-method-call expression name argument-list )
function ( static-do statement-list )
function ( static-do-splice statement-list )
function ( static-for symbol start stop step statement-list )
function ( static-while expression statement-list )
function ( static-repeat-until expression statement-list )
function ( static-break )
function ( static-var symbol expression )
function ( static-return expression )
function ( static-ref expression )
function ( static-deref expression )
function ( static-if expression then-statement-list else-statement-list )
function ( static-ifexpr expression then-expression else-expression )
function ( static-select expression true-expression false-expression )
function ( static-in statement-list expression-list )
function ( static-assign lhs-expression rhs-expression )
function ( static-subscript expression name )
function ( static-member expression name )
function ( static-argument functype index name )
function ( static-function argument-list functype statement-list [ name [ filename ]])

10.8. Special Forms