Pratt Parsing - 自顶向下的算符优先级
简介
Pratt Parsing 是一种在手写递归下降解析器时处理表达式解析的好方法,通过给算符定义优先级,可以处理左递归的语法定义,写起来非常简单。
我学到这个方法是在这本书里:《Writing An Interpreter In Go》,作者用手写递归下降的方式实现了一个名为 Monky 的语言,其中解析表达式的部分就是用 Pratt Parsing 实现的。
Pratt Parsing 是一种在手写递归下降解析器时处理表达式解析的好方法,通过给算符定义优先级,可以处理左递归的语法定义,写起来非常简单。
我学到这个方法是在这本书里:《Writing An Interpreter In Go》,作者用手写递归下降的方式实现了一个名为 Monky 的语言,其中解析表达式的部分就是用 Pratt Parsing 实现的。
FaaS即Function as a service,云函数,用来托管一些无状态服务,好处是可以动态扩缩,非常灵活。
vercel是一个非常良心的免费的前端托管平台,我的博客目前也托管在这里。
最近给IDE装了vim插件(ideaVim),因为觉得写代码时候老是要去按上下左右,效率很低,更主要是low,不够装逼(
但不建议独立使用vim,因为要大量练习才行,和IDE配合使用,可以把重点放在光标移动上,其余功能让IDE来负责。低成本装逼
学习笔记,对标cpp理解下rust所有权以及借用的概念,顺便提下比较特殊的切片(DST)
rust中每个值都有一个所有者变量,并且同一时间只有能一个所有者,当值的所有者变量超出作用域,值的内存会被释放。
下面的代码String
的所有权从s1
转移到了s2
,发生了Move,此时再访问s1
是非法的。参考
RCU这个词最近才听到,是在公司一位老哥的直播分享里听到的。那天在群里没事乱划,突然看到一个直播分享,原本就想进去嫖一眼,结果内容异常硬核,从头看到尾。