flex-lexer

    -1热度

    1回答

    我正在研究Flex & Bison项目。我得到了我的flex &野牛完美的工作,但我试图给真正的argv输入字符串。所以我改变了yyin,以至于花了argv [1],但它实际上并不工作。它只是忽略它。 这里是我的main.c: #include "parser.hpp" #include <stdio.h> #include <iostream> #include <stdlib.h>

    0热度

    1回答

    对于输入abb答案被接受,但为什么? 输入ab正确答案 输入aab拒绝正确的答案 输入aabb接受正确的答案 // parser file %{ #include<stdio.h> %} %left '-' '+' %left '*' '/' %% A: S { printf("accepted\n"); exit(1);} | error |

    -2热度

    1回答

    像在其他语言中,我们可以通过添加注释或者///--- /,#,%等,所以同样的,如果我想在柔性/野牛源代码,添加注释,以便更好地理解的代码。我能做同样的事吗?如果是,那么如何? 每当我试图在互联网上搜索相同的东西时,答案通常用于定义flex/bison中的注释,而不是如何在flex/bison源代码中添加注释。

    0热度

    1回答

    我一直在试图实现一个计算器,而我找不到这个Flex,Bison和C程序的源代码。我真的不知道我做错了什么。下面是我的文件: [email protected]:~/Downloads/YASPLANG$ ls a.out compiler.output compiler.y lex.yy.c compiler.l compiler.tab.c file.o README 我的语法: [

    -1热度

    1回答

    我在Windows的cygwin软件包上使用flex来构建词法分析器。 我创建了规则 文件test.lex当我使用这个命令在命令行 flex -i test.lex cc lex.yy.c -lfl ./a 它工作正常。但是,当我试图使SH文件(compile_flex.sh)这个命令和运行文件 ./compile_flex.sh 我收到错误 flex: can't open test

    0热度

    1回答

    所以我的语法低于'有效'。然而,它具有体积小告诫我现在可以做的东西一样 1.0-----------------2.0 ,它会翻转2之间翻牌-2直到它到达1个OP 2,然后将评估。对野牛来说还是一个新的问题,并且不清楚如何最好地为此实施解决方案。我有一个想法,提出一个错误'+'''的增量为3,但是这是8个语法规则,我甚至不知道如何抛出一个错误的野牛。我想有一个更清晰易懂的方法来做到这一点。 的

    0热度

    1回答

    我定义以下的别名: WS [ \t\n] WSS {WS}* NEWSS {WS}+ NAME [A-Za-z_][A-Za-z0-9_-]* WORD [^;]+ VAR_USE ${WSS}{NAME}{WSS}: VAR_DEF ${VAR_USE}{WSS}{WORD}{WSS}; 而且,这两个简单的规则: {VAR_DEF} cout << "VAR DEF"; {VA

    1热度

    2回答

    我在bison分析器中使用flex分析器来解析输入文件中的词位。 Flex解​​析器检测到一些错误(即未关闭的括号或不可接受的符号)。我想从flex通知bison解析器发生错误,语法解析失败。现在我用这样的代码.L文件 RegExpForInvalidChars: {yyerror("Unaccaptable char")}; 但野牛时调用函数yylex取得的空语义(因为我不返回任何值),并忽

    0热度

    1回答

    %option noyywrap %{ #include <stdio.h> #include <string.h> int chars=0, lines=0; %} binary [01]+ %% {binary} {ECHO; printf("\n"); chars++; } \n {lines++; chars++;} %% int main() { y

    0热度

    1回答

    我不明白为什么在2个功能相同的源文件中,只有1个编译阶段通过flex,另一个生成关于use of undeclared identifier的错误。 这一个是OK(我通常不会在我的编辑器中使用的标签,这些都是空格) int num_lines = 0, num_chars = 0; %% \n ++num_lines; ++num_chars; . ++num_chars; %%