Lisp Value
C 语言有很多种错误处理方式,但针对当前的项目,我更加倾向于使错误也成为表达式求值的结果。也就是说,在 Lispy 中,表达式求值的结果要么是数字,要么便是错误。举例说,表达式 + 1 2
求值会得到数字 3
,而表达式 / 10 0
求值则会得到一个错误。
为了达到这个目的,我们需要能表示这两种结果的数据结构。简单起见,我们使用结构体来表示,并使用 type
字段来告诉我们当前哪个字段是有意义的。
结构体名为 lval
,取义 Lisp Value,定义如下:
/* Declare New lval Struct */
typedef struct {
int type;
long num;
int err;
} lval;
当前内容版权归 NoahDragon 译 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 NoahDragon 译 .