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

0 投票
1 回答
405 浏览

parsing - 构建 UI 标记语言解析器的工具

对于一个学校项目,我需要为用户界面(可能基于 XML)的标记语言实现一个解析器。根据输入,它生成一个带有各种 UI 组件(文本区域、输入、面板、对话框等)的 HTML 文档。

您对我可能使用的工具/库有什么建议吗?(在学校我们使用 Flex 和 Bison,但我们被允许使用现代工具——也许是具有 lex 和 yacc 功能的工具)

0 投票
2 回答
199 浏览

regex - 开始使用 lex

我需要像这样格式化一些 hexdump:

  • 删除地址字段(如果存在)

  • 删除08段落末尾的任何内容(后跟空行)

  • 删除任何空行

如何使用lex做到这一点?谢谢!

0 投票
1 回答
538 浏览

lex - 为什么要返回令牌名称?

当我使用指向值的 yylval 时,为什么要返回 NUM?我的意思是 NUM 代表什么(NUM 在 YACC 部分中标明)?NUM 是否存储任何值?

即使有适当的解决方案,我也对本节感到非常困惑。我只是没有得到返回 NUM 的正确理由,因为我在 YACC 中有指针 yylval。

0 投票
2 回答
2562 浏览

java - 用 Java 构建词法分析器

我目前正在学习编译器设计中的词法分析。为了了解词法分析器的工作原理,我正在尝试自己构建一个。我打算用Java构建它。

词法分析器的输入是一个 .tex 文件,其格式如下。

词法分析器的输出应该是一个目录,可能带有另一个文件中的页码。

我希望这个问题在词法分析的范围之内

我的词法分析器会读取 .tex 文件并检查 '\' 并找到继续阅读以检查它是否确实是分段命令之一。设置标志变量以指示切片的类型。根据类型和深度,在切片命令之后的花括号中的单词以数字为前缀(如 1.2.1)被读取和写入。

我希望上述方法适用于构建词法分析器。如果在词法分析器的范围内可能的话,我该如何在目录中添加页码?

0 投票
2 回答
400 浏览

parsing - 如何创建一个解析器来标记从文件中提取的单词列表?

我正在尝试为我的编译器类做一个语法文本校正器。这个想法是:我有一些规则,这是语言(在我的例子中是葡萄牙语)固有的,比如“一个有效的短语是主语动词形容词”,就像“Ruby is great”一样。

好的,所以首先我必须标记输入“Ruby 很棒”。所以我有一个文本文件“动词”,有很多动词,一行一行。然后我有一个文本“形容词”,一个“代词”等。

我正在尝试使用 Ragel 创建解析器,但我不知道如何执行以下操作:

我查看了 ANTLR、Lex/Yacc、Ragel 等。但找不到一个似乎可以解决这个问题的。我能想到的唯一方法是预处理 Ragel 的输入文件,以便我的程序读取文件并将其内容写入正确的位置。但我也不喜欢这个解决方案。

有谁知道我怎么能做到这一点?没有Ragel也没问题,我只想解决这个问题。我想使用 Ruby 或 Python,但这也不是必需的。

谢谢。

0 投票
2 回答
530 浏览

lex - 使用 Lex/Yacc 识别汉字中的标识符

如何使用 Lex/Yacc 识别汉字中的标识符?

0 投票
1 回答
581 浏览

lex - flex文件的编译错误

我正在尝试构建一个简单的词法分析器,以及一个用于(科学)C 程序的简单输入输出库。使用自动工具(包括 automake、libtool 和 autoconf)进行编译时,出现以下错误:

这通常意味着我忘记了函数原型末尾的分号,但我检查了我的标题并且没有这样的遗漏。

这是 simpleio_lex.l:

Emacs 中的*compilation*缓冲区超链接将我指向%}%序言末尾的 。为什么我会收到此错误?我也没有称为“的”的符号。

谢谢,

乔尔

0 投票
1 回答
1662 浏览

bison - 野牛和flex的分段错误

我正在尝试使用 oreilly 的书来学习 lex 和 yacc。我尝试了书中的示例,但它给出了分段错误。

我正在使用 flex 和 bison。我在 while 循环中的 main 函数中遇到分段错误。它根本没有进入循环。

有什么想法吗?谢谢,罗伯特

0 投票
2 回答
2380 浏览

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 文件。我不明白现在可能是什么问题。

0 投票
2 回答
463 浏览

c - 什么时候可以使用解析器生成器?

我正在为我正在编写的网络应用程序编写一种简单的文本模板语言(想想谷歌的 ctemplate)。完成后,它将仅包含少量可能的操作,例如“评估和执行”、“评估和打印”、“评估和转义 html”、“评论”等简单内容。我正在考虑从头开始手工编写整个解析器,但我开始研究像 lex、flex 和 antlr 这样的解析器生成器。这些看起来比我对简单语法的需要要多得多。所以问题是,在什么时候使用解析器生成器是可行的?