7得票4回答
如何将令牌流转换为解析树

我已经构建了一个从输入流中输出令牌的词法分析器,但是我不确定如何构建下一步 - 解析树。有没有人有关于如何完成这个过程的好资源或示例?

7得票2回答
为什么 Parsec 不考虑我的 <|> 交替表达式右侧?

我想解析C++代码。因此,我需要一个上下文敏感的词法分析器。在C++中,&gt;&gt;取决于上下文,可以是一个标记(&gt;&gt;)或两个标记(&gt; &gt;)。更复杂的是,还有一个标记&gt;&gt;=,无论上下文如何,它始终相同。 punctuation :: Bool -&gt...

7得票1回答
使用Lex/Flex在扫描器中获取字符位置

在Lex / Flex中,是否有一种方法可以获取标记出现在字符流中的位置(从文件开头开始)?类似于yylineno,但它将字符位置作为整数返回? 如果没有,最好的方法是什么?我需要保持自己的计数器吗? 谢谢!

7得票3回答
Python编程语言的词法分析

有人知道是否有Python的FLEX或LEX规范文件吗?例如,这是一个ANSI C编程语言的lex规范:http://www.quut.com/c/ANSI-C-grammar-l-1998.html。我正在尝试将代码高亮显示到Cocoa应用程序中。正则表达式不适用于此,因为我还希望进行语法分...

7得票1回答
如何在Ruby中解析一个以制表符分隔的文本行?

我觉得Ruby的each函数有些令人困惑。如果我有一行文本,使用each循环会给我每个以空格分隔的单词而不是每个单独的字符。 那么,最好的方法是如何检索由制表符分隔的字符串部分呢?目前我的写法是: line.split.each do |word| ... end 但这并不完全正确。

7得票3回答
解析Python函数调用以获取参数位置

我希望有一段代码能够分析这样的函数调用: whatever(foo, baz(), 'puppet', 24+2, meow=3, *meowargs, **meowargs) 并返回每个参数的位置,本例中为foo、baz()、'puppet'、24+2、meow=3、*meowargs...

7得票1回答
Haskell中是否有现成的词法分析解决方案,可以允许动态运行时词汇表?

我正在开发一个小的Haskell项目,需要将一个非常简单的、严格格式化的英语子集转换为用于语义分析的标记。它是一个非常天真的自然语言接口,可以向具有许多不同末端效应器的系统发出命令。我目前正在使用Alex来实现这一点,但Alex依赖于其词典被静态编译。由于系统的性质是在编译之后可以增加或减少世...

7得票1回答
在ocamllex中返回多个标记

有没有办法在OCamlLex中返回多个标记? 我正在尝试编写一个缩进语言的词法分析器和解析器,当词法分析器发现缩进级别小于之前的级别时,我想让它返回多个“DEDENT”标记。这将使它能够在多个块结束时通知解析器。 通过这种方法,我将能够使用“INDENT”和“DEDENT”作为“BEGIN...

7得票1回答
使用Python正则表达式模块re时,哪些特殊字符需要进行转义?

我正在使用Python模块re编写用于词法分析的正则表达式。我一直在寻找一个详尽的列表,其中列出了必须转义以便被正则表达式识别的特殊字符,但一直没有找到。请问有人能够指向一个详细的列表吗? 我正在编写的当前正则表达式中出现问题的行是: [\|\^&amp;\+-%\*\/=!&gt;] ...

7得票3回答
如何识别带有非单词标记的文本中的单词?

我目前正在解析一堆邮件,并希望从中获取单词和其他有趣的标记(即使有拼写错误或字符和字母的组合,例如“zebra21”或“customer242”)。但是,我如何知道“0013lCnUieIquYjSuIA”和“anr5Brru2lLngOiEAVk1BTjN”不是单词,也不相关?如何提取单词并...