问题标签 [flex-lexer]

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 回答
8643 浏览

xml-parsing - bison/flex 中的简单 XML 解析器

我想使用 bison/flex创建简单的 xml 解析器。我不需要验证、注释、参数,只有<tag>value</tag>,其中可以是数字、字符串或其他<tag>value</tag>

例如:

如果有帮助,我知道可能出现的所有标签的名称。我知道给定标签可以容纳多少子标签。是否可以创建可以执行以下操作的野牛解析器:

标签和子标签数量:

  • 数量:1(唯一值)
  • str:1(唯一值)
  • 添加 | 子 | 穆尔| div: 2 (num | str | tag, num | str | tag)

你能帮我用语法来创建上面给出的 AST 吗?

0 投票
1 回答
266 浏览

localization - 有没有办法本地化来自 bison/flex 的错误消息?

bison 和 flex 是否允许用户本地化错误消息?例如,我想翻译以下消息:语法错误,意外的 NUMBER,期望 $end为其他语言,并将 NUMBER/$end 替换为更易于阅读的内容。

0 投票
1 回答
3914 浏览

parsing - 使用 flex/bison 构建类似 Lisp/Scheme 的解析树

我试图解析简单的 Lisp/scheme-like 代码

并从中构建一棵树,我可以在不使用的情况下在 C 中进行解析bison(即,仅 flex用于返回标记并使用递归构建树)。但是,对于bison语法,我不确定在哪里添加代码来构建列表(即,与累积终端符号相关联的规则以及将构建列表链接到父节点的位置)。

我的语法和这里的类似: Lisp grammar in yacc 语法是正确的,可以识别代码。

0 投票
4 回答
148 浏览

regex - 建议正则表达式

有人可以建议以下文本的正则表达式吗

签名

文本 文本 更多文本

文本

...

文字

我试过Signature\n.*\)了,但这仅适用于

签名
文本)

基本上是一个以给定文本开头、允许多行换行并以 . 结尾的表达式)

谢谢

0 投票
1 回答
3616 浏览

regex - 为什么 Flex 说这是“无法识别的规则”?

在下面的:

我收到一条错误消息

如果我取消注释第二个版本arg_macro并注释第一个版本,错误消息就会消失。

任何想法为什么?

0 投票
1 回答
581 浏览

lex - flex文件的编译错误

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

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

这是 simpleio_lex.l:

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

谢谢,

乔尔

0 投票
1 回答
2128 浏览

memory-leaks - flex/bison 使用意外令牌修复内存泄漏

我有一个灵活的野牛应用程序。对于我的一些标记,我使用 strdup 从 flex 复制出 yytext。这很好用,除非出现意外令牌错误。

简单的例子

现在假设我把输入交给它:

词法分析器将发送第一个 IDENT 令牌,该令牌被推入堆栈。在第一个令牌之后,它需要一个括号令牌,而是获得另一个 IDENT 令牌。这是一个语法错误。将在第一个 IDENT 令牌上调用析构函数不会在第二个(意外的)上调用。我一直无法找到破坏意外令牌的方法。有谁知道我应该怎么做?

0 投票
2 回答
13600 浏览

bison - 对 yyparse 的未定义引用(flex & bison)

我正在尝试学习一些 flex/bison,我正在阅读 John Levine (O'Reilly) 的 Flex & Bison。有一个我需要运行的示例,但是由于出现以下错误,我无法使其运行:

我有四个源文件:

fb3-1.h

FB3-1.l

FB3-1.y

fb3-1funcs.c

建造:

我正在运行 Ubuntu 10.04 x64,安装了“flex”和“bison”包。任何人都知道为什么会发生此错误,以及如何解决?提前致谢 :)

0 投票
1 回答
853 浏览

c++ - 如何在 Visual C++ 中使用 Flex?

我正在尝试将 Flex 与 Visual C++ 一起使用。但是,生成的词法分析器(它是空的并且没有规则)在构建时会抛出这些错误:

源文件是:

我正在通过将此目标添加到我的 Visual Studio 项目中进行构建:

是否可以将 Flex 与 MSVC 一起使用?

0 投票
2 回答
463 浏览

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

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