问题标签 [lex]
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.
parsing - 构建 UI 标记语言解析器的工具
对于一个学校项目,我需要为用户界面(可能基于 XML)的标记语言实现一个解析器。根据输入,它生成一个带有各种 UI 组件(文本区域、输入、面板、对话框等)的 HTML 文档。
您对我可能使用的工具/库有什么建议吗?(在学校我们使用 Flex 和 Bison,但我们被允许使用现代工具——也许是具有 lex 和 yacc 功能的工具)
lex - 为什么要返回令牌名称?
当我使用指向值的 yylval 时,为什么要返回 NUM?我的意思是 NUM 代表什么(NUM 在 YACC 部分中标明)?NUM 是否存储任何值?
即使有适当的解决方案,我也对本节感到非常困惑。我只是没有得到返回 NUM 的正确理由,因为我在 YACC 中有指针 yylval。
java - 用 Java 构建词法分析器
我目前正在学习编译器设计中的词法分析。为了了解词法分析器的工作原理,我正在尝试自己构建一个。我打算用Java构建它。
词法分析器的输入是一个 .tex 文件,其格式如下。
词法分析器的输出应该是一个目录,可能带有另一个文件中的页码。
我希望这个问题在词法分析的范围之内。
我的词法分析器会读取 .tex 文件并检查 '\' 并找到继续阅读以检查它是否确实是分段命令之一。设置标志变量以指示切片的类型。根据类型和深度,在切片命令之后的花括号中的单词以数字为前缀(如 1.2.1)被读取和写入。
我希望上述方法适用于构建词法分析器。如果在词法分析器的范围内可能的话,我该如何在目录中添加页码?
parsing - 如何创建一个解析器来标记从文件中提取的单词列表?
我正在尝试为我的编译器类做一个语法文本校正器。这个想法是:我有一些规则,这是语言(在我的例子中是葡萄牙语)固有的,比如“一个有效的短语是主语动词形容词”,就像“Ruby is great”一样。
好的,所以首先我必须标记输入“Ruby 很棒”。所以我有一个文本文件“动词”,有很多动词,一行一行。然后我有一个文本“形容词”,一个“代词”等。
我正在尝试使用 Ragel 创建解析器,但我不知道如何执行以下操作:
我查看了 ANTLR、Lex/Yacc、Ragel 等。但找不到一个似乎可以解决这个问题的。我能想到的唯一方法是预处理 Ragel 的输入文件,以便我的程序读取文件并将其内容写入正确的位置。但我也不喜欢这个解决方案。
有谁知道我怎么能做到这一点?没有Ragel也没问题,我只想解决这个问题。我想使用 Ruby 或 Python,但这也不是必需的。
谢谢。
lex - 使用 Lex/Yacc 识别汉字中的标识符
如何使用 Lex/Yacc 识别汉字中的标识符?
lex - flex文件的编译错误
我正在尝试构建一个简单的词法分析器,以及一个用于(科学)C 程序的简单输入输出库。使用自动工具(包括 automake、libtool 和 autoconf)进行编译时,出现以下错误:
这通常意味着我忘记了函数原型末尾的分号,但我检查了我的标题并且没有这样的遗漏。
这是 simpleio_lex.l:
Emacs 中的*compilation*
缓冲区超链接将我指向%}%
序言末尾的 。为什么我会收到此错误?我也没有称为“的”的符号。
谢谢,
乔尔
bison - 野牛和flex的分段错误
我正在尝试使用 oreilly 的书来学习 lex 和 yacc。我尝试了书中的示例,但它给出了分段错误。
我正在使用 flex 和 bison。我在 while 循环中的 main 函数中遇到分段错误。它根本没有进入循环。
有什么想法吗?谢谢,罗伯特
lex - FlexSDK 编译 mxml 文件
下载并安装了最新版本的 FlexSDK。将其解压缩到文件夹 C:FlexSDK 中。打开我的命令提示符到 C:/FlexSDK/bin。运行文件夹的目录,我的 mxmlc.exe 文件就在那里。从命令提示符发出 mxmlc c:test.mxml 并收到“找不到 JVM”错误。这很令人惊讶,因为我之前在我的计算机上从命令提示符编译了 mxml 文件。此外,我之前也曾在命令提示符下开发、编译和运行过 java 程序。我知道我的系统上有一个 JRE。事实上,它位于“C:\Program Files\Java\jre6”。正如我之前所说,我已经编译了 mxml 文件。我不明白现在可能是什么问题。
c - 什么时候可以使用解析器生成器?
我正在为我正在编写的网络应用程序编写一种简单的文本模板语言(想想谷歌的 ctemplate)。完成后,它将仅包含少量可能的操作,例如“评估和执行”、“评估和打印”、“评估和转义 html”、“评论”等简单内容。我正在考虑从头开始手工编写整个解析器,但我开始研究像 lex、flex 和 antlr 这样的解析器生成器。这些看起来比我对简单语法的需要要多得多。所以问题是,在什么时候使用解析器生成器是可行的?