问题标签 [lexical-analysis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python3.0 - 标记化和取消标记化
我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段:
尽管python2.x中的代码不一样,但它使用相同的习语并且工作得很好。然而,使用 python3.0 运行上面的代码片段,我得到了这个输出:
我已经搜索了有关此错误及其原因的引用,但找不到任何内容。我做错了什么,我该如何纠正?
[编辑]
在partisann观察到在源代码中添加换行符会导致错误消失之后,我开始弄乱我正在取消标记的列表。如果没有在换行符之前立即出现该标记,则该标记似乎EOF
会导致错误,因此删除它可以消除该错误。以下脚本运行没有错误:
c++ - 我在哪里可以获得能够报告 C 或 C++ 中的 for 循环错误的词法分析器?
我需要一个简单的词法分析器来报告 C/C++ 中的 for 循环错误。
language-agnostic - 编译器在解析过程中将大部分时间花在哪里?
我在Sebesta 书中读到,编译器将大部分时间花在对源代码进行词法分析上。因此,与语法分析器不同,优化词法分析器是必要的。
如果这是真的,与一般的语法分析相比,为什么词法分析阶段需要这么多时间?
我的意思是语法分析派生过程。
text-parsing - 大型文档的文本分析
我有一个项目,我需要将多章文档与第二个文档进行比较以确定它们的相似性。问题是我不知道如何去做,存在哪些方法,或者它们是否有任何可用的库。
我的第一个问题是......什么是相似的?匹配的单词数,匹配的连续单词数?
我可以看到编写一个解析器,将每个文档放入包含单词和位置的数组中,然后比较它们。
我在 Algorithms or libraries for text analysis 看到了较早的问题 ,具体来说:主要词、跨文本的短语和文本集合
但是,这似乎与我尝试做的有些不同。
人们可能拥有的任何选项或指示都会很棒!
parsing - Lex / Flex 中的启动状态
我正在使用 Flex 和 Bison 作为解析器生成器,但是我的扫描仪中的启动状态存在问题。
我正在使用排他规则来处理评论,但这个语法似乎与引用的标记不匹配:
在这个简单的例子中,这一行:
不完全匹配作为评论,除非我包含此规则:
我如何绕过这个而不必将所有这些令牌添加到我的独家规则中?
python - 从文本中解析含义
我意识到这是一个广泛的话题,但我正在寻找一个很好的从文本中解析含义的入门书,最好是在 Python 中。作为我想要做的一个例子,如果用户发表博客文章,例如:
“曼尼·拉米雷斯今天回归道奇队,对阵休斯顿太空人队”,
从句子中取出名词的轻量级/简单方法是什么?首先,我想我会将它限制为专有名词,但我不想仅限于此(而且我不想依赖一个简单的正则表达式,它假设任何 Title Capped 都是专有名词)。
让这个问题更糟的是,我没有要求我应该做的事情是什么?我需要现有单词的语料库才能开始吗?我需要知道哪些词法分析知识才能完成这项工作?我确实遇到了关于该主题的另一个问题,我现在正在挖掘这些资源。
c - 当我编写词法分析器时,tokens.h 有什么用?
我正在用 C 编写一个词法分析器,我在某处读到了有关头文件的信息tokens.h
。它在那里吗?如果是这样,它的用途是什么?
regex - 基于 DFA 的正则表达式匹配 - 如何获取所有匹配项?
我有一个代表正则表达式的给定 DFA。我想将 DFA 与输入流进行匹配并取回所有可能的匹配项,而不仅仅是最短最长的匹配项。
例如:
正则表达式:a*ba|baa
输入:aaaaabaaababbabbbaa
结果:
- 啊啊啊啊
- 阿巴
- 巴
- 咩
parsing - 在 Lex 而不是 Yacc 中处理错误条件?
假设我有一个 lex 正则表达式
如果用户输入
它会匹配
但是如果用户说类似的话
我希望它出错并说“无法识别字符 K,期待 S”
我现在正在做的只是像这样写
然后实质上重新对 Yacc 中的字符串进行词法分析,以便我可以有有意义的错误条件
我怎样才能解决这个问题?
我唯一能想到的是使用命名组?
parsing - 编写 Z80 汇编器 - 对 ASM 进行词法分析并使用组合构建解析树?
我对编写汇编程序的概念非常陌生,即使在阅读了大量材料之后,我仍然难以理解几个概念。
将源文件实际分解为令牌的过程是什么?我相信这个过程被称为词法分析,我已经在高处和低处搜索了一个有意义的真实代码示例,但我找不到一个非常受欢迎的简单代码示例;)
解析时,信息是否需要向上或向下传递?我问的原因如下,采取:
LD BC, nn
标记化后需要变成下面的解析树(???)
现在,当遍历这棵树时,它需要产生以下机器代码:
如果指令是:
那么输出需要是:
这意味着它提出了一个问题,LD 节点是根据操作数返回不同的东西还是返回一些东西的操作数?这是如何实现的?如果时间允许,更简单的代码示例会更好。