-
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>);
网友评论