问题标签 [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.
c++ - 使用 Flex/Bison 进行语法分析第 2 部分
你好,
我需要 Lex/Yacc 编程方面的帮助。我编写了一个编译器,用于对许多语句的输入进行语法分析。现在我有一个特殊的问题。
在输入的情况下,编译器给出正确的输出,使用哪个语句,常量运算符或 jmp 指导员到哪个标签,现在我必须这样写,如果现在出现 if 语句,首先是第一个命令(在 else 之前) if 的赋值为yes 时必须要跳出,因为else 后面的命令不需要,所以在这个jmp 之后必须跳出第二个命令。我在一个例子中展示它也许你明白我的意思。
输入广告。输出
像这样。我有一个想法,也许我可以用一个特殊的 if 语句来做到这一点
当 if 语句在输入中给出时,编译器必须识别语句的结尾,就像我的编译器中的 jmp_stmt 一样(你必须从http://bitbucket.org/matrix/changed-tiny下载文件)才跳转到最后。我希望你能理解我的问题。谢谢。
python - 如何编写 Python 词法分析器?
我正在尝试编写一个 C 模块来对 Python 代码进行词法分析。我该怎么做?
input - Bison 输入分析器 - 关于可选语法和输入解释的基本问题
我对 Flex/Bison 很陌生,所以这是一个非常幼稚的问题。
如果是,请原谅我。可能看起来像家庭作业问题 - 但我需要根据以下概念实施项目。
我的问题与两个部分有关,
问题 1
在 Bison 解析器中,如何为可选输入提供规则。
就像,我需要解析语句
示例:
在这里,比率标记可以是可选的。同样,如果我有许多可选标记,那么如何在解析器中提供相同的语法?
我的代码看起来像,
%start program
program : TK_COUNTRY TK_IDENTIFIER TK_STATE TK_IDENTIFIER TK_POPULATION TK_IDENTIFIER ...
其中所有标记都在词法分析器中定义。由于有很多标记是可选的,如果我使用“|” 那么将有许多不同的输入组合方式成为可能。
问题 2
评论很有可能在输入中包含引号,所以我添加了一个 token -tag,用户可以提供它来解释相同的内容,
例子 :
现在,我需要将 Indiana$'s 重新解释为 Indiana's since -tag=$
.
请提供任何输入或相关材料以了解这些主题。
javascript - 词法分析器需要提供哪些功能?
我正在做一个词法分析器,不要告诉我不要做,因为我已经做了大部分。
目前它制作了一系列令牌,仅此而已。
我想知道词法分析器需要提供哪些功能,以及每个功能需要做什么的简要说明。
我会接受最完整的清单。
一个示例函数是:
next : 消费当前令牌并返回
此外,词法分析器应该具有该expect
功能还是解释器应该实现它?
顺便说一句,词法分析器构造函数接受一个字符串作为参数,并进行词法分析并将所有标记存储在“tokens”变量中。
语言是javascript,所以我不能重载运算符。
c++ - 您知道 Qt 中的任何词法分析器或词法分析器吗?
您知道 Qt 中的任何词法分析器或词法分析器吗?我需要它来解析文本文件。
regex - Haskell 中的正则表达式与词法分析器
我开始使用 Haskell,我正在尝试使用Alex工具来创建正则表达式,但我有点迷茫;我的第一个不便是编译部分。我必须如何使用 Alex 编译文件?然后,我认为我必须将 alex 生成的模块导入我的代码,但不确定。如果有人可以帮助我,我将非常感激!
java - 用 Java 构建词法分析器
我目前正在学习编译器设计中的词法分析。为了了解词法分析器的工作原理,我正在尝试自己构建一个。我打算用Java构建它。
词法分析器的输入是一个 .tex 文件,其格式如下。
词法分析器的输出应该是一个目录,可能带有另一个文件中的页码。
我希望这个问题在词法分析的范围之内。
我的词法分析器会读取 .tex 文件并检查 '\' 并找到继续阅读以检查它是否确实是分段命令之一。设置标志变量以指示切片的类型。根据类型和深度,在切片命令之后的花括号中的单词以数字为前缀(如 1.2.1)被读取和写入。
我希望上述方法适用于构建词法分析器。如果在词法分析器的范围内可能的话,我该如何在目录中添加页码?
lex - 使用 Lex/Yacc 识别汉字中的标识符
如何使用 Lex/Yacc 识别汉字中的标识符?
python - 词法分析或一系列正则表达式将非结构化文本解析为结构化形式
我正在尝试编写一些功能类似于谷歌日历快速添加功能的代码。您知道可以输入以下任何内容的那个:1) 2010 年 9 月 24 日,约翰生日 2) 约翰生日,2010 年 9 月 24 日 3) 2010 年 9 月 24 日,约翰·多伊生日 4) 2010 年 9 月 24 日:约翰5) 约翰生日 2010 年 9 月 24 日
它可以计算出我们想要一个日期为 24/9/2010 的事件将其余材料作为事件文本。
我想做的是 python 。
我正在考虑一种设计,我编写可能匹配上面列出的所有情况并提取日期的正则表达式。但我相信有一种更聪明的方法可以解决这个问题。因为我显然没有接受过词法分析或多种类型的解析器风格的培训。我正在寻找解决这个问题的好方法。
c - 关于词法分析的问题
我在看龙书。引用书中的文字(3.1.4 词汇错误,Pno 114)
词法分析器很难在没有其他组件的帮助下判断源代码错误。例如,如果
fi
在上下文中的 C 程序中第一次遇到该字符串:词法分析器无法判断
fi
是关键字拼写错误if
还是未声明的函数标识符。由于fi
是标记 id 的有效词位,词法分析器必须将标记返回id
给解析器,并让编译器的其他阶段——在这种情况下可能是解析器——处理由于字母转置引起的错误。
读完后我有点困惑。我的理解是词法分析器开始从左到右处理文本,并在模式匹配时返回标记。那么对于一种语言,if
关键字在哪里匹配,怎么fi
匹配呢?
有什么想法吗?