Closed DistinctWind closed 1 year ago
现在虚拟机的运行结果已经变为
using result_type = std::variant<std::monostate, int, double, bool>;
访问结果类型,需要调用者自己处理可能的变体。详见单元测试添加的部分
新问题,下面实现浮点数,那虚拟机中浮点数应该跟整数共享指令PLUS
吗?也就是说让PLUS
指令既能处理整数也能处理浮点数?
按照正常的CPU设计来说,浮点数和整数的处理应该是分开的。所以我比较想加上新指令FLOAT_PLUS
来确保类型安全。
这个虚拟机实现现在不能汇报错误,虚拟机会假设我们的程序输入是完全正确的。一旦程序有错,将会抛出异常(而我们还没有手段处理这个异常)。
所以在现在的情况下,暂时没办法把程序的编写权限交给用户。
添加了类型的基础设施
目前的想法是,在抽象语法树构建过程中计算S-Attribute。类型刚好就是S-Attribute,可以在抽象语法树的构造过程中计算。