编译原理已经学了很多了吧?还有所迷茫?那么今天跟着我一起学习如何暴力写一个Parser Generator
Why Java:
因为Java有着丰富的对开发人员傻瓜式友好的内置数据结构,什么Map,Set,Stack,求交集求并集也就一句a.contains(b);a.addAll(b)的事情,并且不需要担心资源泄漏(?)的问题,对于我们的暴力实现非常有帮助。而且相比C++我也更为熟悉..
What is parser generator
这里就指的是支持用户输入CFG(Context-free grammar),然后生成出一个Java代码,这个代码可以编译以后得到一个Parser用来Parse符合输入CFG定义的文法,类似于Yacc
迷糊了?举个例子,就是假如用户定义了这样一组CFG,用来匹配一个对于正整数的加法和乘法