{debug_name_,sb} {*lhs} = {*rhs}; *lhs *rhs if ({*condition}) {*body} if ({*condition}) {*body} {*else_statements[0]} if ({*condition}) {*body} {*else_statements[0]} {*else_statements[1]} if ({*condition}) {*body} {*else_statements[0]} {*else_statements[1]} {*else_statements[2]} if ({*condition}) {*body} {*else_statements[0]} {*else_statements[1]} {*else_statements[2]} else {else_statements.size()-3} more... 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.size()-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 {symbol} : {*type} let {symbol} : {*type} = {*constructor} let {symbol} = {*constructor} var {symbol} : {*type} = {*constructor} var {symbol} = {*constructor} var {symbol} {*variable}; {value} {value} {value} void &({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.size()-3} more...) {*name} {*type} array<{*type},{*count}> array<{*type}> {name} bool i32 u32 f32