问题标签 [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.

0 投票
2 回答
1430 浏览

python - Python3.0 - 标记化和取消标记化

我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段:

尽管python2.x中的代码不一样,但它使用相同的习语并且工作得很好。然而,使用 python3.0 运行上面的代码片段,我得到了这个输出:

我已经搜索了有关此错误及其原因的引用,但找不到任何内容。我做错了什么,我该如何纠正?

[编辑]

partisann观察到在源代码中添加换行符会导致错误消失之后,我开始弄乱我正在取消标记的列表。如果没有在换行符之前立即出现该标记,则该标记似乎EOF会导致错误,因此删除它可以消除该错误。以下脚本运行没有错误:

0 投票
4 回答
658 浏览

c++ - 我在哪里可以获得能够报告 C 或 C++ 中的 for 循环错误的词法分析器?

我需要一个简单的词法分析器来报告 C/C++ 中的 for 循环错误。

0 投票
4 回答
747 浏览

language-agnostic - 编译器在解析过程中将大部分时间花在哪里?

我在Sebesta 书中读到,编译器将大部分时间花在对源代码进行词法分析上。因此,与语法分析器不同,优化词法分析器是必要的。

如果这是真的,与一般的语法分析相比,为什么词法分析阶段需要这么多时间?

我的意思是语法分析派生过程。

0 投票
5 回答
343 浏览

text-parsing - 大型文档的文本分析

我有一个项目,我需要将多章文档与第二个文档进行比较以确定它们的相似性。问题是我不知道如何去做,存在哪些方法,或者它们是否有任何可用的库。

我的第一个问题是......什么是相似的?匹配的单词数,匹配的连续单词数?

我可以看到编写一个解析器,将每个文档放入包含单词和位置的数组中,然后比较它们。

我在 Algorithms or libraries for text analysis 看到了较早的问题 ,具体来说:主要词、跨文本的短语和文本集合

但是,这似乎与我尝试做的有些不同。

人们可能拥有的任何选项或指示都会很棒!

0 投票
3 回答
15707 浏览

parsing - Lex / Flex 中的启动状态

我正在使用 Flex 和 Bison 作为解析器生成器,但是我的扫描仪中的启动状态存在问题。

我正在使用排他规则来处理评论,但这个语法似乎与引用的标记不匹配:

在这个简单的例子中,这一行:

不完全匹配作为评论,除非我包含此规则:

我如何绕过这个而不必将所有这些令牌添加到我的独家规则中?

0 投票
7 回答
13082 浏览

python - 从文本中解析含义

我意识到这是一个广泛的话题,但我正在寻找一个很好的从文本中解析含义的入门书,最好是在 Python 中。作为我想要做的一个例子,如果用户发表博客文章,例如:

“曼尼·拉米雷斯今天回归道奇队,对阵休斯顿太空人队”,

从句子中取出名词的轻量级/简单方法是什么?首先,我想我会将它限制为专有名词,但我不想仅限于此(而且我不想依赖一个简单的正则表达式,它假设任何 Title Capped 都是专有名词)。

让这个问题更糟的是,我没有要求我应该做的事情是什么?我需要现有单词的语料库才能开始吗?我需要知道哪些词法分析知识才能完成这项工作?我确实遇到了关于该主题的另一个问题,我现在正在挖掘这些资源。

0 投票
2 回答
1001 浏览

c - 当我编写词法分析器时,tokens.h 有什么用?

我正在用 C 编写一个词法分析器,我在某处读到了有关头文件的信息tokens.h。它在那里吗?如果是这样,它的用途是什么?

0 投票
1 回答
4273 浏览

regex - 基于 DFA 的正则表达式匹配 - 如何获取所有匹配项?

我有一个代表正则表达式的给定 DFA。我想将 DFA 与输入流进行匹配并取回所有可能的匹配项,而不仅仅是最短最长的匹配项。

例如:

正则表达式:a*ba|baa

输入:aaaaabaaababbabbbaa

结果:

  1. 啊啊啊啊
  2. 阿巴
0 投票
1 回答
1515 浏览

parsing - 在 Lex 而不是 Yacc 中处理错误条件?

假设我有一个 lex 正则表达式

如果用户输入

它会匹配

但是如果用户说类似的话

我希望它出错并说“无法识别字符 K,期待 S”

我现在正在做的只是像这样写

然后实质上重新对 Yacc 中的字符串进行词法分析,以便我可以有有意义的错误条件

我怎样才能解决这个问题?

我唯一能想到的是使用命名组?

0 投票
3 回答
4088 浏览

parsing - 编写 Z80 汇编器 - 对 ASM 进行词法分析并使用组合构建解析树?

我对编写汇编程序的概念非常陌生,即使在阅读了大量材料之后,我仍然难以理解几个概念。

  1. 将源文件实际分解为令牌的过程是什么?我相信这个过程被称为词法分析,我已经在高处和低处搜索了一个有意义的真实代码示例,但我找不到一个非常受欢迎的简单代码示例;)

  2. 解析时,信息是否需要向上或向下传递?我问的原因如下,采取:

    LD BC, nn

标记化后需要变成下面的解析树(???)

现在,当遍历这棵树时,它需要产生以下机器代码:

如果指令是:

那么输出需要是:

这意味着它提出了一个问题,LD 节点是根据操作数返回不同的东西还是返回一些东西的操作数?这是如何实现的?如果时间允许,更简单的代码示例会更好。

我最感兴趣的是在这里学习一些原始流程,而不是查看现有的高级工具,因此在将我发送到YaccFlex之前请记住这一点。