|
1
|
| Brendan · 技术社区 · 16 年前 |
|
|
1
2
Regex不能做那样的事。但你可以破解它:
丑陋! |
|
|
2
0
这就是为什么我们认为regexps可以取代lexer。 简短的版本:正则表达式只能处理所有可能语言中被称为“正则”的那一小部分(我知道,这让人大吃一惊)。但是“正则”并不是同构于人类对“简单”的理解,所以即使非常简单的语言也可以有非正则表达式。 为一种简单的语言编写一个lexer并不难。 主题上资源的规范堆栈溢出问题是 Learning to write a compiler . 啊。我似乎误解了这个问题。兆。 我对ply不熟悉,用flex已经有一段时间了,不过我想你会吃的。 任意数量 跟在数字后面,然后 检查 在相关的代码块中,如果遵守了规则。 |
|
3
0
pyparsing包含一个与此非常类似的自适应表达式,称为countedarray。CountedArray(expr)解析前导整数“n”,然后解析expr的“n”实例,将整个数组返回为单个列表。其工作方式是CountedArray解析前导整数表达式,后跟未初始化的前向表达式。前导整数表达式附加了一个parse操作,该操作将以下forward赋给“n”*expr。然后,PyParsing解析器继续,并解析下面的“n”expr。因此,它是一种自我修改解析器。 要分析表达式,如下所示:
印刷品:
如果ply有类似的东西,也许您可以使用这种技术。 |
|
Hakanai · 为什么这个Lucene查询没有返回命中率? 10 年前 |
|
|
Shahtaj Khalid · 在文本文件中显示输出 11 年前 |
|
|
mel · Elasticsearch:在我的英语分析器上添加同义词过滤器 11 年前 |
|
|
myang · 如何在一个句子中列出所有表示动物的英语术语? 11 年前 |