       post: ''
     "$pre {\n${ @body.compile(o) }\n$@tab}$post"
 
-type WhileNode, 'WhileNode'
-statement WhileNode
-children WhileNode, 'condition', 'guard', 'body'
+register WhileNode, {name: 'WhileNode', is_statement: yes, children: ['condition', 'guard', 'body']}
 
 #### OpNode
 

  toString: (idt) ->
    " \"$@value\""

type LiteralNode, 'LiteralNode'

#### ReturnNode


  compile_node: (o) ->
    "${@tab}throw ${@expression.compile(o)};"

register ThrowNode, {name: 'ThrowNode', is_statement: true, children: ['expression']}

#### ExistenceNode

