驱动代码功能很简单,即在解析时调用相应的解析函数。其中没有什么有趣的地方,让我们看看这部分的代码:
结论""
- ready> def foo(x y) x+foo(y, 4.0);
- Parsed a function definition.
- ready> def foo(x y) x+y y;
- Parsed a top-level expr
- ready> def foo(x y) x+y );
- Parsed a function definition.
- ready> extern sin(a);
- ready> Parsed an extern
- ready> ^D
目前Kaleidoscope还有很多扩展空间,比如你可以定义新的AST节点,扩展语法等等。在下一章,我们将介绍如何从AST生成LLVM中间代码(Intermediate Representation,简称IR)