flex-lexer相关内容
同时使用flex和bison时 flex文件为什么需要#include由Bison创建的C标头? 编译需要bison和flex创建的C源文件。Bison和flex创建的C源文件对彼此有什么要求? 推荐答案 Bison生成的头中最重要的是用于标识令牌类型的枚举值(这些值是由词法操作返回给解析器的值)。 标头还声明YYSTYPE语义类型和变量yylval(具有该类型),用于将
..
免责声明:尽管我已经完成了本教程:http://ds9a.nl/lex-yacc/cvs/lex-yacc-howto.html ,但我只是个新手 现在,我正在为OpenGL-C++中的一个项目构建一个视频游戏。Cpp包含所有的游戏图形、逻辑等(相当容易管理,所以不是问题)。在游戏开始之前,它需要解析一个配置文件(让我们假设它是任意格式,所以INI和JSON API是不成问题的)。 我了
..
我想知道如何在bison+flex中将缩进实现为块分隔符。就像巨蟒一样。我正在编写自己的编程语言(主要是为了好玩,但我打算将其与游戏引擎一起使用),我会尝试想出一些特殊的东西,使样板程序最小化,开发速度最大化。 我已经用C编写了一个编译器(实际上是`langToy‘到Nasm的转换器),但失败了。由于某种原因,它只能处理整个源文件中的一个字符串(嗯,我已经醒了超过48小时-所以……你知道,大
..
..
如何在 Flex 中检测像 // 这样的一行注释并跳过这些行? 另外,对于 /* 注释,以下代码段是否足够? "/*" { 评论();}%%评论(){字符 c, c1;环形:而 ((c = input()) != '*' && c != 0)putchar(c);if ((c1 = input()) != '/' && c != 0){输出(c1);转到循环;}如果 (c != 0)pu
..
我一直在尝试遵循 http://gnuu.org/2009/09/18/writing-your-own-toy-compiler/5/(使用 flex、bison 和 llvm)但是在输入行时 g++ -o parser parser.cpp tokens.cpp main.cpp 我收到以下错误: 在/usr/local/include/llvm/Support/PointerL
..
我正在尝试编写一个简单的 YAML 解析器,我从 yaml.org 阅读了规范,在开始之前,我想知道编写手动解析器是否更好,或者使用 lex (flex/bison).我查看了 libyaml (C 库) -似乎没有使用 lex/yacc.YAML(不包括流样式),似乎更面向行,所以,是吗更容易编写手动解析器,或使用 flex/bison谢谢. 解决方案 这个答案基本上是对以下问题的回答:
..
比如我想把一个m组成的字符串匹配到n个汉字,那么我可以使用: [单汉字正则表达式]{m,n} 是否有单个汉字的正则表达式,可以是任何存在的汉字? 解决方案 匹配中文(好吧,CJK)字符的正则表达式是 \p{script=Han} 可以简单地理解为 \p{Han} 这假设您的正则表达式编译器满足要求RL1.2来自UTS#18的属性Unicode 正则表达式.Perl 和 Java
..
我正在寻找 gcc 的一个选项,它可以让它从标准输入中读取一个源文件,主要是为了我可以做这样的事情来从像 flex 生成 C 代码(flex 的 -t 选项将生成的 C 写入标准输出): flex -t lexer.l |gcc -o lexer.o -magic-option-here 因为我并不真正关心生成的 C 文件. 是否存在这样的东西,或者我必须使用临时文件? 解决方案
..
我正在为一种简单的类似 BASIC 的语言编写一个小型解释器,作为使用 avr-gcc 工具链在 C 语言中的 AVR 微控制器上的练习.但是,我想知道是否有任何开源工具可以帮助我编写词法分析器和解析器. 如果我写这个在我的 Linux 机器上运行,我可以使用 flex/bison.现在我把自己限制在 8 位平台上,我必须手工完成,还是不? 解决方案 我已经实现了一个针对ATmega
..
我知道这里有一些措辞非常相似的问题,但我在那里找不到我的问题的答案,所以我们开始: 我想看看我的哪些 C++ 方法被其他人调用,所以我在谷歌搜索后找到了 Doxygen. 在他们的页面上,安装看起来非常简单: 如果您安装了必要的构建工具(即 g++、python、cmake、flex、bison),您应该执行以下操作以获得初始存储库的副本: git clone https://gi
..
弹性:‘r/s’ 一个“r",但前提是它后面跟着一个“s".在确定此规则是否为最长匹配时,包含与“s"匹配的文本,但在执行操作之前将其返回到输入.所以动作只看到与“r"匹配的文本.这种类型的模式称为尾随上下文.(有一些 'r/s' 的组合不能正确匹配.参见限制,关于危险的尾随上下文.) 在 ANTLRv4 中如何做到这一点? 解决方案 我主要通过两种方式完成了这项工作.
..
弹性:‘r/s’ 一个“r",但前提是它后面跟着一个“s".在确定此规则是否为最长匹配时,包含与“s"匹配的文本,但在执行操作之前将其返回到输入.所以动作只看到与“r"匹配的文本.这种类型的模式称为尾随上下文.(有一些 'r/s' 的组合不能正确匹配.参见限制,关于危险的尾随上下文.) 在 ANTLRv4 中如何做到这一点? 解决方案 我主要通过两种方式完成了这项工作.
..
我正在尝试编写一个可以解析以下 3 个输入的语法 -- 测试文件--类 hi 实现 ho:var x:int;结尾;-- 测试文件 2 --接口xs:myFunc(int,int):int结尾;-- 测试文件 3 --类 hi 实现 ho:方法 myMethod(x:int)返回 y;结尾结尾; 这是lexer.l: %{#include #include #include "parser.
..
我正在使用 bison 和 flex,目前遇到了一些问题.当前读取第一个字符并将其传递给 Bison,但立即抛出 yyerror().它应该打印 1,因为 'w' 是由我的 Flex 规则定义的 Ident. 我无法确定问题的根源.我没有使用 Bison 的经验. 这是我的野牛解析规则: %%程序:StmtSeq {printf(“13");};StmtSeq : Stmt Stm
..
首先,我对 flex 和 bison 非常陌生,我似乎真的无法解决这个问题. 我已经创建了 flex 和 bison 文件,编译工作正常,这里是我的 flex 和 bison 文件 (ps 评论是法语)弹性: %{//定义 en 语言 C#include"minilang.tab.h"extern int yylval;extern int nbrligne;%}//les defi
..
在iTerm2 bash中运行以下代码.代码文件是使用Vim创建的. /*就像Unix wc */%{int chars = 0;int字= 0;整数行= 0;%}%%[a-zA-Z] + {个单词++;字符+ = strlen(yytext);}\ n {字符++;线++;}.{chars ++;}%%main(int argc,char ** argv){yylex();printf(“%8
..
在某些Flex/Lex代码中, DIGIT [0-9]字母[A-Za-z]ID {LETTER} {LETTER} | {DIGIT})*NUM {DIGIT} +(\.{DIGIT} +)? 因此, 123 匹配 NUM ,而 abc123 匹配 ID .的情况下 123abc ,它匹配 NUM ,后跟和 ID .然而,我希望它生成一条错误消息而不是匹配消息. 有没有简单的方法可以
..
我有一个用C ++编写的flex程序,需要完成以下规则: 我希望yytext接受以下内容: ○零或以下字符之一ABCDEFGH 例如-输入: “三角形ABC"指的是“三角形ABC".是有效的形状,我希望程序打印“有效形状" “三角形AAC"指的是“三角形AAC".不是有效的形状,因为它包含双精度A,并且我希望程序在这种情况下不打印任何内容 “三角形ABCD"指的是“三角形ABC
..
我正在使用jflex和cup,试图制作一个html解析器,但无法使其正常工作, Netbeans,编译过程不会停止,始终会继续,无法在分析树中正确添加更多“令牌",也不能在"TEXTO"中添加空间,这会破坏整棵树 lexicoh.jlex 包compiladorhtml;导入java_cup.runtime.*;%%%class Lexer%线%柱子%杯子%{私人符号symbol(i
..