ng:语言细节
2017-10-28 本文已影响18人
KimmyLeo
-
a.b(c)跟b(a, c)等价 -
=>等价于return -
函数签名后直接跟一个语句即可,也即
fun id(x) => x; -
else始终与最近的if相关联,除非选择用{}复合语句来隔 -
运算符统一采用左结合,并且不设置优先级
-
暂且不考虑数字符号,比如
+1、-3等 -
以上两条主要是因为太懒了而且用简单的递归下降不太好实现
语法树目前直接用生指针实现,后期可以考虑实现专用的智能指针或者用std::shared_ptr,通过ASTRef来delegate:
template<class T>
using ASTRef = ...;
template<class T, class... Args>
ASTRef<T> makeast(Args&&... args);
template<class T>
void destoryast(ASTRef<T>);