更新一下解释性语言的多类型变量处理的方法:
在第一次预解释的时候根据变量类型把运算符替换掉,如
int a b c
= c + a b
变成
int a b c
=_int_int c +_int_int a b
然后解释的时候就可以直接把所有变量用longint
存了(但是pointer
可能会跑的快一点)
如果有数组、字符串等,存头地址,注意同时记录长度(或在最后塞上#0
等)
定义record
的时候记录第一个变量的头指针,取的时候算偏移量.
更新一下解释性语言的多类型变量处理的方法:
在第一次预解释的时候根据变量类型把运算符替换掉,如
int a b c
= c + a b
变成
int a b c
=_int_int c +_int_int a b
然后解释的时候就可以直接把所有变量用longint
存了(但是pointer
可能会跑的快一点)
如果有数组、字符串等,存头地址,注意同时记录长度(或在最后塞上#0
等)
定义record
的时候记录第一个变量的头指针,取的时候算偏移量.