# Oberon builting procedures

The unit at [comp/oberon/builtin.fs] contains the implementation of builtin
procedures such as LEN(), NEW() etc.

Many of those procedures handle their arguments in an irregular way, so they're
implemented as compiler words that have the same semantics as expression
operators [comp/oberon/expr]. That is, they have the ( ast -- type halop )
signature and are expected to compile their thing.

## API

?builtin, ( ast -- type halop 1 OR ast 0 )
  Provided that "ast" is a procedure call op, check if its first argument is a
  straight "ident" with one of the builtins as a name. If it is, call the
  appropriate handler and yield ( type halop 1 ). Otherwise, yield ( ast 0 ).
