Interpreter Demo

syntax

Basic idea of the syntax...
      program : expr
      expr : number
           : [*/+-](expr, expr)
           : zero?(expr), less?(expr, expr), greater?(expr, expr)
           : if expr then expr else expr
           : variable
           : minus(expr)
           : letrec proc+ in expr
           : (expr expr)  # procedure calling

      proc : variable (expr [,expr]*) = expr

      variable : [A-Za-z]+