为了教学目的,我们正在构建一个JavaScript逐步解释器,用于(C代码的子集)。
基本上,我们有:int、float、数组、函数、for、while等,没有指针。JavaScript解释器已经完成,可以让我们解释布尔表达式如何计算,展示变量堆栈...
目前,我们正在手动将C示例转换为一些javascript,以便运行并构建操作堆栈(赋值,函数调用...),稍后可以用于逐步执行的内容。由于我们限制自己只使用C的子集,所以这很容易做到。
现在,我们想将C代码编译为我们的javascript表示形式。我们所需要的只是C代码的抽象语法树,然后javascript生成就很简单了。
你知道一个好的C解析器可以生成这样的树吗?不需要是javascript(但那将是完美的),任何语言都可以,因为这可以离线完成。
我看过Emscripten(https://github.com/kripken/emscripten),但它更像是一个C=>javascript编译器,而这不是我们想要的。
基本上,我们有:int、float、数组、函数、for、while等,没有指针。JavaScript解释器已经完成,可以让我们解释布尔表达式如何计算,展示变量堆栈...
目前,我们正在手动将C示例转换为一些javascript,以便运行并构建操作堆栈(赋值,函数调用...),稍后可以用于逐步执行的内容。由于我们限制自己只使用C的子集,所以这很容易做到。
现在,我们想将C代码编译为我们的javascript表示形式。我们所需要的只是C代码的抽象语法树,然后javascript生成就很简单了。
你知道一个好的C解析器可以生成这样的树吗?不需要是javascript(但那将是完美的),任何语言都可以,因为这可以离线完成。
我看过Emscripten(https://github.com/kripken/emscripten),但它更像是一个C=>javascript编译器,而这不是我们想要的。
node.name.coord
检索定义的行号,但您知道我是否还可以获取该行上的位置吗? - Loïc Février