extern int yylineno;//行号
extern char* yytext;//词
//int yyerror(const char *s);//错误处理函数

/*抽象语法树的结点*/
struct Node {
	int line;//行号
	char* name;//语法单元的名字
	struct Node *lchild;//左孩子
	struct Node *rchild;//右孩子
	union {//共用体用来存放ID/TYPE/INTEGER/FLOAT结点的值
		char *idtype;
		int intgr;
		float flt;
	};
};

/*构造抽象语法树,变长参数，name:语法单元名字；num:变长参数中语法结点个数*/
struct Node *newNode(char* name,int num,...);

/*遍历抽象语法树，level为树的层数*/
void eval(struct Node*,int level); 