###--------------------------------------------------------------------------
### Node structure.
-record node(left, data, right)
+record Node(left, data, right)
## A simple binary tree structure.
procedure fringe(node)
## Generate the elements of the tree headed by NODE inorder.
- if /node then fail
- suspend fringe(node.left) | node.data | fringe(node.right)
+ if \node then
+ suspend fringe(node.left) | node.data | fringe(node.right)
end
procedure scan_tree()
local data, left, right
- if ="(" then {
+ if not ="(" then
+ return &null
+ else {
left := scan_tree()
data := move(1) | bail("no data")
right := scan_tree()
=")" | bail("missing )")
- return node(left, data, right)
- } else
- return &null
+ return Node(left, data, right)
+ }
end
procedure parse_tree(string)