#ifndef __AST_H__
#define __AST_H__


typedef unsigned char variable;
typedef int number;

typedef struct tree_tag {
  int code;
  number num;
  variable var;
  struct tree_tag *left, *right;
} * AST;

AST ast_node(int code, AST left, AST right);
AST ast_let(variable var, AST expr);
AST ast_num(number num);
AST ast_var(variable var);


#endif
