问题标签 [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.
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.35
。bison (GNU Bison) 2.3
编辑:对于不需要 goto 的简单程序(例如 hello.spl),您可以通过删除除第一个 ACT I/SCENE I 之外的所有 ACT/SCENE 行来解决此问题。
c++ - 如何在 Flex 中使用 C++?
我如何将性能关键的东西外包给 C++。有什么例子吗?
c++ - 使用 flex/yacc 编写 C++ 编译器需要多少时间?
使用 lex/yacc 编写 C++ 编译器需要多少时间?
我可以从哪里开始?
c - flex/lex 中字符串文字的正则表达式
我正在尝试学习 flex 并想匹配字符串文字。我的代码目前看起来像:
我已经在变化中苦苦挣扎了一个小时左右,但无法让它按应有的方式工作。我本质上希望匹配一个不能包含换行符(除非它被转义)并支持转义字符的字符串文字。
我可能只是在写一个糟糕的正则表达式或一个与 flex 不兼容的表达式。请指教!
flex-lexer - 难以在 flex/lex 中获得 c 风格的注释
我想在 flex 中制定一个规则来使用像 /* */ 这样的 c 样式注释
我有以下
但它永远不会匹配。知道为什么吗?如果您需要更多我的代码,请告诉我,我将提交整个内容。感谢任何回复的人。
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 代码。
vim - 高级 vim 自动补全
我正在尝试使用 flex 构建一个词法分析器。以下是显示正则表达式及其相应操作的行。
有没有办法{printf("yada yada \n");}
通过vim的自动完成功能从regex1重用,这样我在写regex2时就不需要再写整个东西了?
例如
这超出了单词完成的范围,所以我想知道这在 vim 中可行吗?
TIA
parsing - 编写可在 8 位嵌入式系统上使用的解析器,如 Flex/Bison
我正在使用 avr-gcc 工具链为类似 BASIC 的简单语言编写一个小型解释器,作为 C 语言 AVR 微控制器上的练习。
如果我写这个是为了在我的 Linux 机器上运行,我可以使用 flex/bison。既然我将自己限制在 8 位平台,我将如何编写解析器?
regex - lex(flex)生成的程序不解析整个输入
我有一个相对简单的 lex/flex 文件,并且一直在使用 flex 的调试标志运行它,以确保它正确地标记化。不幸的是,我总是遇到两个问题之一 - 要么是 flex 生成的程序在几个令牌之后默默地放弃,要么我用来识别字符和字符串的规则没有被调用,默认规则而是调用。
有人可以指出我正确的方向吗?我附上了我的 flex 文件和示例输入/输出。
编辑:我发现生成的词法分析器在特定规则后停止:“cdr”。这更详细,但也更令人困惑。我发布了一个简短的修改过的 lex 文件。
样本输入:
通过生成的解析器运行输入的完整输出:
有什么想法吗?生成的程序输入一半就放弃了!(作为参考,我通过将文件的内容重定向到生成的程序来进行输入)。