// parse function for auxiliary V,
rules V -> a | b | c
V([]) => [FAILURE, []];
// no input
V([c | chars]) => isVar(c) ?
[mkTree(c), chars]; //
variable
V([c | chars]) => [FAILURE, [c |
chars]];
// not a variable
// auxiliary functions
FAILURE = "failure";
VARS = ['a', 'b', 'c'];
isVar(char) = member(char,
VARS);
failed(result) = result ==
FAILURE;
mkTree(Var) = Var;
mkTree(Op, Tree1, Tree2) = [Op,
Tree1, Tree2];
parse(string) = A(explode(string));