{{ length={len}, capacity={cap} }} len data impl_.slice.cap > (int)$T2 Length() impl_.slice.data can_move_ slice_ {name_,sb} {*lhs} = {*rhs}; *lhs *rhs if ({*condition}) {*body} if ({*condition}) {*body} else { *else_statement } else {*body} else if ({*condition}) {*body} {{ {*statements[0]} }} {{ {*statements[0]} {*statements[1]} }} {{ {*statements[0]} {*statements[1]} {*statements[2]} }} {{ {*statements[0]} {*statements[1]} {*statements[2]} {statements.Length()-3} more... }} return; return {*value}; fn {symbol}() -> {*return_type} {*body} fn {symbol}({*params[0]}) -> {*return_type} {*body} fn {symbol}({*params[0]} {*params[1]}) -> {*return_type} {*body} fn {symbol}({*params[0]} {*params[1]} {*params[2]}) -> {*return_type} {*body} fn {symbol}({*params[0]} {*params[1]} {*params[2]} {params.size()-3} more...) -> {*return_type} {*body} {symbol} symbol {*object}[{*index}] *object *index {*structure}.{*member} *structure *member let {symbol} : {*type} = {*initializer} let {symbol} = {*initializer} var {symbol} : {*type} = {*initializer} var {symbol} : {*type} var {symbol} = {*initializer} var {symbol} {*variable}; {value} {value} &({*expr}) ~({*expr}) *({*expr}) -({*expr}) !({*expr}) ({*lhs} NONE {*rhs}) ({*lhs} & {*rhs}) ({*lhs} | {*rhs}) ({*lhs} ^ {*rhs}) ({*lhs} && {*rhs}) ({*lhs} || {*rhs}) ({*lhs} == {*rhs}) ({*lhs} != {*rhs}) ({*lhs} < {*rhs}) ({*lhs} > {*rhs}) ({*lhs} <= {*rhs}) ({*lhs} >= {*rhs}) ({*lhs} << {*rhs}) ({*lhs} >> {*rhs}) ({*lhs} + {*rhs}) ({*lhs} - {*rhs}) ({*lhs} * {*rhs}) ({*lhs} / {*rhs}) ({*lhs} % {*rhs}) {target}() {target}({*args[0]}) {target}({*args[0]}, {*args[1]}) {target}({*args[0]}, {*args[1]}, {*args[2]}) {target}({*args[0]}, {*args[1]}, {*args[2]}, {*args[3]}) {target}({*args[0]}, {*args[1]}, {*args[2]}, {args.Length()-3} more...) {*name} {*type} array<{*type},{*count}> array<{*type}> vec2 vec3 vec4 vec2<{*type}> vec3<{*type}> vec4<{*type}> {name} bool i32 u32 f32 AbstractInt AbstractFloat bool f32 vec{width_}<{*subtype_}> Type={*Type()} Value={Value()} Decl={*declaration_}