about summary refs log tree commit diff stats
path: root/baremetal/shell/parse.mu
blob: 918fb108f9a2b203d7fa82e61c2f9609ede3349f (plain) (blame)
1
2
3
4
5
6
7
8
9
fn parse-sexpression tokens: (addr stream cell), _out: (addr handle cell), trace: (addr trace) {
  # For now we just convert first token into a symbol and return it. TODO
  var out/eax: (addr handle cell) <- copy _out
  allocate out
  var out-addr/eax: (addr cell) <- lookup *out
  read-from-stream tokens, out-addr
  var type/ecx: (addr int) <- get out-addr, type
  copy-to *type, 2/symbol
}