'(' Punctuation 'module' Keyword '\n ' Text '(' Punctuation 'func' Keyword ' ' Text '$fib' Name.Variable ' ' Text '(' Punctuation 'param' Keyword ' ' Text '$n' Name.Variable ' ' Text 'i32' Keyword.Type ')' Punctuation ' ' Text '(' Punctuation 'result' Keyword ' ' Text 'i32' Keyword.Type ')' Punctuation '\n ' Text '(' Punctuation 'local' Keyword ' ' Text '$a' Name.Variable ' ' Text 'i32' Keyword.Type ')' Punctuation '\n ' Text '(' Punctuation 'local' Keyword ' ' Text '$b' Name.Variable ' ' Text 'i32' Keyword.Type ')' Punctuation '\n ' Text '(' Punctuation 'local' Keyword ' ' Text '$result' Name.Variable ' ' Text 'i32' Keyword.Type ')' Punctuation '\n ' Text '(' Punctuation 'if' Keyword '\n ' Text '(' Punctuation 'i32.eqz' Name.Builtin ' ' Text '(' Punctuation 'local.get' Name.Builtin ' ' Text '$n' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'then' Keyword '\n ' Text '(' Punctuation 'return' Name.Builtin ' ' Text '(' Punctuation 'i32.const' Name.Builtin ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text ')' Punctuation '\n ' Text ')' Punctuation '\n ' Text '(' Punctuation 'local.set' Name.Builtin ' ' Text '$b' Name.Variable ' ' Text '(' Punctuation 'i32.const' Name.Builtin ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text '(;' Comment.Multiline ' nested ' Comment.Multiline '(;' Comment.Multiline ' comment ' Comment.Multiline ';)' Comment.Multiline ' ' Comment.Multiline ';)' Comment.Multiline '\n ' Text 'loop' Keyword '\n ' Text '(' Punctuation 'local.set' Name.Builtin ' ' Text '$result' Name.Variable ' ' Text '(' Punctuation 'i32.add' Name.Builtin ' ' Text '(' Punctuation 'local.get' Name.Builtin ' ' Text '$a' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'local.get' Name.Builtin ' ' Text '$b' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'local.set' Name.Builtin ' ' Text '$a' Name.Variable ' ' Text '(' Punctuation 'local.get' Name.Builtin ' ' Text '$b' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'local.set' Name.Builtin ' ' Text '$b' Name.Variable ' ' Text '(' Punctuation 'local.get' Name.Builtin ' ' Text '$result' Name.Variable ')' Punctuation ')' Punctuation '\n\n ' Text ';; decrement $n' Comment.Single '\n ' Text '(' Punctuation 'local.tee' Name.Builtin ' ' Text '$n' Name.Variable ' ' Text '(' Punctuation 'i32.sub' Name.Builtin ' ' Text '(' Punctuation 'local.get' Name.Builtin ' ' Text '$n' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'i32.const' Name.Builtin ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation '\n\n ' Text '(;' Comment.Multiline ' test if $n > 0 ' Comment.Multiline ';)' Comment.Multiline '\n ' Text '(' Punctuation 'i32.gt_u' Name.Builtin ' ' Text '(' Punctuation 'i32.const' Name.Builtin ' ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\n ' Text ';; if so, jump to the beginning of the loop' Comment.Single '\n ' Text 'br_if' Name.Builtin ' ' Text '0' Literal.Number.Integer '\n ' Text 'end' Keyword '\n ' Text 'local.get' Name.Builtin ' ' Text '$result' Name.Variable '\n ' Text ')' Punctuation '\n ' Text '(' Punctuation 'func' Keyword ' ' Text '$test_memory_store_args' Name.Variable '\n ' Text 'i32.const' Name.Builtin ' ' Text '1' Literal.Number.Integer '\n ' Text 'f64.store' Name.Builtin ' ' Text 'align' Keyword '=' Operator '8' Literal.Number.Integer ' ' Text 'offset' Keyword '=' Operator '16' Literal.Number.Integer '\n ' Text ')' Punctuation '\n ' Text '(' Punctuation 'export' Keyword ' ' Text '"' Literal.String.Double 'fib' Literal.String.Double '"' Literal.String.Double ' ' Text '(' Punctuation 'func' Keyword ' ' Text '$fib' Name.Variable ')' Punctuation ')' Punctuation '\n' Text ')' Punctuation '\n' Text