LL(1)文法分析

自顶向下

自顶向下是一种从开始符号推导出输入符号所对应的语法的过程,举个例子:

上面便是个从开始符号S出发,推导出aabb语法情况的过程,可以通过这个信息产生语法树。

那么如何推导呢?下面是通过一个栈来做的穷举推导过程,这种推导是需要回溯的:

上面的例子里面,出栈一个非终结符的时候,便从这个终结符的几个产生式里找一个做尝试,如果此路不通,就回退到尝试的路口,然后换一个产生式继续努力,直到找到一条看起来可以走下去的路继续重复以上的步骤(如果所有产生式都不能走通,就判断为语法有问题)。

可以想象,如果从A开始就选错了产生式,然后B尝试了所有产生式都没走通,那么回溯的层次就不仅仅是B自己一层了。这就好像一条路有X个岔路,然后每个岔路又有各自Y个岔路,而每个子岔路下面仍然有可能有Z个岔路,而目的地是X5Y2Z8,这种做法好像赌博碰运气一样,看天吃饭。有没有其他好的方法呢?

继续阅读

这是梦话吧

已经很久没更新,上次写东西还是2月一篇不成熟的读后感。这些日子还是看似简单的生活,无风的海面一样。

除了一些奇怪的状态片段,水煮过的青黄夹杂着重油轰鸣,这些奇形怪状的结构早该在夏日的微风来临时轰塌,所谓拖延症,也都是因为他。怀念伴着晚霞的日子,那美好的颜色,只能偶然的偷闲时轻瞥。

这光,照亮心中的,魔鬼,还是神明?懊恼和悔恨会不会吞噬,那影子,试探着黑暗,深深的。

探索Ruby正则表达式算法(译)

来源:Exploring Ruby’s Regular Expression Algorithm(2012)

ps. 业余翻译的,求轻拍。有什么问题可以直接指出。

大家都熟悉正则表达式,它是开发者的“瑞士军刀”。不管你想查找哪种信息,解析哪些字符串,总有一种正则表达式适合你。事实上,你可能用过很久的ruby所使用的正则表达式了——正则表达式已经被集成到几乎所有主要的语言中好多年了:Perl、javascript、PHP、Java等等。ruby支持是在90年代中期,而正则表达式是在60年代中期发明的,早了30年。

但是正则表达式是怎样工作的呢?如果你对正则表达式引擎后面的计算机原理感兴趣的话,可以读一下这三篇Russ Cox写的极棒的文章:

在这里我不打算重复Russ的内容。但是我准备在第二篇文章中快速的解释一下ruby所使用的“无递归的回溯实现”, 这意味着它可能也会像perl正则表达式一下慢吞吞。就是说,这意味着Ruby并没有使用目前最主流的正则表达式实现方法——Thompson NFA,也就是Russ第一篇文章中所描述的。

今天我们细看一下Oniguruma,也就是Ruby所使用的正则表达式引擎。我们使用一些插图来表现一些简单的正则示例,以此来弄清楚在使用正则的时候是Ruby内部是如何工作的——它比你想象的要复杂多了。

继续阅读

尝刚开的餐厅

看新播的美剧

刚到的快递

崭新的桌椅

蛛丝如川河

推攘进步的机器

阴霾偃息

白云散去

古老的先民

在荒丘中死去

又一次更换域名

这次,我又换了域名,目前lunae.cc会跳转到新域名。

blog.of.vin

由此带来的不便,十分抱歉。

前几天主机忘记续费,导致关机两天左右,我也是醉了。。

———— 分割 ————

2016年,博客更新次数算是屈指可数了。或许是因为内心不够平静,也或是真的到了瓶颈。

这些时光走来,常去的博客渐渐都关门大吉,变成孩子狂欢后丢弃的玩具。我这无人问津确常折腾换名的博客居然还幸存下来,变成一个仅供自己娱乐的微小记号。

Hello,2017。

osx下vagrant box add因curl失败的问题

前几天vagrant做box add的时候发现加不进去,报以下信息:

给vagrant加上debug看看调试信息,这样就知道是什么原因导致的了:

下面是一部分调试信息:

里面说

问题应该就在这里了,curl用不了。这个curl用的是vagrant自带的,需要比较高的lib版本(9。0.0),但是osx里的lib老了点(7.0.0)。

解决方法很简单:只需要把vagrant自带的curl删掉或者移走就可以了。

然后再执行一下box add就解决了。

参考:mac OSX Sierra, can't add vagrant box laravel/homestead, due to needing cURL v 9.0.0 or later, and libcurl.4.dylib providing v7.0.0

好吧,又瞎折腾

昨天把dns服务器从dnspod迁走,结果在新dns服务商那里填错了配置……

现在我还绑着hosts写的这篇博客……

现在配置已经正确修改了,我想很快就会生效了。

这一天多访问带来的不便十分抱歉。

后记:奇怪,nginx偶尔会返回400,粗略看了一下,后台没日志,回头细看。

半年

很久没有更新博客了。

随着工作的深入,可以追寻的技术也越来越模糊,技术类的文章越写越来越少,也越怕误导人。

干脆出了一趟远门,看看外面的路,也看看前面的路。

离职时朋友说:“相信我,你想也想不出什么结果。”

时光慢慢流淌,从嫩绿深绿变枯黄,秋天也快过完了。

路依旧,人也依旧这样。

还好,生活也是这样。

IMG_1066IMG_6530IMG_7408IMG_0006IMG_0500IMG_9484

离别


只是一个短篇
一则故事
一篇寓言

我放开牵马的缰
走向高处的光
看着稀薄的天
深邃的湖水

回首光芒四射的城市
抱着太阳神的雕像
惆怅