在制作JS二进制编译器的时候,我首先是参考了LLVM官方的的万花筒语言的编写教程(教程地址)实现了第一个DEMO(DEMO的详细讲解地址),当然因为是DEMO所以功能不全也BUG多,但是制作套路还是能说说的。制作流程可以分为以下几步。
1、编写AST用于分析语言结构。2、将分析的语言绑定生成IR(中间语言)。3、生成二进制或汇编代码。总结就是:把你的要实现的语言代码生成一个对象,再把这个对象绑定到IR语言的对象上,LLVM就能直接通过IR语言的对象生成IR代码,IR代码对应了机器码,用LLVM生成机器码。
在第一行增加
#include
少头文件 stdlib.h
exit(1);}
修改为return 0;