问题标签 [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 投票
3 回答
7285 浏览

macos - 在 Mac OS X 10.6 上编译和执行莎士比亚编程语言翻译器 spl2c 会导致警告/错误

我想尝试使用莎士比亚编程语言,所以我从这里下载了它并使用cd spl-1.2.1 Make.

编译spl2c执行时有几个警告:

然后,当它尝试编译所有示例时,一切都变得混乱:

有人能指出我解决这个问题的正确方向吗?我最初的项目将学习 spl,而不是倾向于调试编译器(我实际上最终想编写自己的编译器,但我现在更愿意坚持我的初始项目)。

我在跑步OS X 10.6.2,,,,gcc version 4.2.1 (Apple Inc. build 5646) (dot 1)flex 2.5.35bison (GNU Bison) 2.3

编辑:对于不需要 goto 的简单程序(例如 hello.spl),您可以通过删除除第一个 ACT I/SCENE I 之外的所有 ACT/SCENE 行来解决此问题。

0 投票
2 回答
237 浏览

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

我如何将性能关键的东西外包给 C++。有什么例子吗?

0 投票
13 回答
6192 浏览

c++ - 使用 flex/yacc 编写 C++ 编译器需要多少时间?

使用 lex/yacc 编写 C++ 编译器需要多少时间?

我可以从哪里开始?

0 投票
6 回答
102432 浏览

c - flex/lex 中字符串文字的正则表达式

我正在尝试学习 flex 并想匹配字符串文字。我的代码目前看起来像:

我已经在变化中苦苦挣扎了一个小时左右,但无法让它按应有的方式工作。我本质上希望匹配一个不能包含换行符(除非它被转义)并支持转义字符的字符串文字。

我可能只是在写一个糟糕的正则表达式或一个与 flex 不兼容的表达式。请指教!

0 投票
9 回答
28271 浏览

flex-lexer - 难以在 flex/lex 中获得 c 风格的注释

我想在 flex 中制定一个规则来使用像 /* */ 这样的 c 样式注释

我有以下

但它永远不会匹配。知道为什么吗?如果您需要更多我的代码,请告诉我,我将提交整个内容。感谢任何回复的人。

0 投票
2 回答
7044 浏览

c++ - position.hh:46: 错误: 'namespace' 之前的预期 unqualified-id

这是我的代码:

谢谢楼主,太好了 Necrolis,也谢谢你。你们两个在编译单元上都在同一轨道上。这是完整的错误报告:

在 location.hh:45、parser.h:64、scanner.h:25、scanner.ll:8 包含的文件中:position.hh:46:错误:“命名空间”之前的预期 unqualified-id</p >

location.hh 看起来像这样:

我还应该补充一点,这些文件是由野牛生成的。正是当我尝试编译由 flex++ 生成的 c++ 扫描程序类时,我才到了这个阶段。我通过发出 flex --c++ -oscanner.ccscanner.ll 来获得 .cc 代码。

0 投票
1 回答
235 浏览

compilation - 我应该使用 flex/yacc 编写 Direct3D 着色器模型语言编译器吗?

我将为 Direct3D 的着色器模型语言创建一个编译器。编译器的目标平台和开发环境在 Windows/VC++ 上。对于那些不熟悉着色器模型语言的人,这里是该语言所包含的指令示例(有些指令有点过时,但语法与我将使用的版本基本相同)。

这里

和这里

我正在考虑将 flex/yacc 作为开发编译器的框架。这些适合这份工作吗?有没有更好的原生 C++ 开发框架?

0 投票
4 回答
1314 浏览

vim - 高级 vim 自动补全

我正在尝试使用 flex 构建一个词法分析器。以下是显示正则表达式及其相应操作的行。

有没有办法{printf("yada yada \n");}通过vim的自动完成功能从regex1重用,这样我在写regex2时就不需要再写整个东西了?

例如

这超出了单词完成的范围,所以我想知道这在 vim 中可行吗?

TIA

0 投票
4 回答
73226 浏览

parsing - 编写可在 8 位嵌入式系统上使用的解析器,如 Flex/Bison

我正在使用 avr-gcc 工具链为类似 BASIC 的简单语言编写一个小型解释器,作为 C 语言 AVR 微控制器上的练习。

如果我写这个是为了在我的 Linux 机器上运行,我可以使用 flex/bison。既然我将自己限制在 8 位平台,我将如何编写解析器?

0 投票
2 回答
1989 浏览

regex - lex(flex)生成的程序不解析整个输入

我有一个相对简单的 lex/flex 文件,并且一直在使用 flex 的调试标志运行它,以确保它正确地标记化。不幸的是,我总是遇到两个问题之一 - 要么是 flex 生成的程序在几个令牌之后默默地放弃,要么我用来识别字符和字符串的规则没有被调用,默认规则而是调用。

有人可以指出我正确的方向吗?我附上了我的 flex 文件和示例输入/输出。

编辑:我发现生成的词法分析器在特定规则后停止:“cdr”。这更详细,但也更令人困惑。我发布了一个简短的修改过的 lex 文件。

样本输入:

通过生成的解析器运行输入的完整输出:

有什么想法吗?生成的程序输入一半就放弃了!(作为参考,我通过将文件的内容重定向到生成的程序来进行输入)。