标签: flex++

Flex ++坏字符错误等等.新的flex

我们刚刚开始使用flex为项目构建词法分析器,但是我们无法弄清楚如何让它工作.我复制教程中给出的示例代码,并尝试以tut文件作为参数运行flex ++,但每次只收到一个错误.例如

输入文件(calc.l)

%name Scanner
%define IOSTREAM

DIGIT   [0-9]
DIGIT1  [1-9]

%%

"+"               { cout << "operator <" << yytext[0] << ">" << endl; }
"-"               { cout << "operator <" << yytext[0] << ">" << endl; }
"="               { cout << "operator <" << yytext[0] << ">" << endl; }
{DIGIT1}{DIGIT}*  { cout << "  number <" << yytext    << ">" << endl; }
.                 { cout << " UNKNOWN <" << yytext[0] << ">" << endl; } …
Run Code Online (Sandbox Code Playgroud)

lex flex++ flex-lexer

7
推荐指数
1
解决办法
5911
查看次数

Flex ++的常见难点

注意:有超过1500代表的人..请添加flex ++和bison ++作为标签:).

好像互联网上的人一直在使用Flex ++遇到以下错误:

scanner.l:1: bad character: %
scanner.l:1: unknown error processing section 1
Run Code Online (Sandbox Code Playgroud)

在我给Flex ++的任何例子中都会发生这种情况.我的版本来自这里,我已经尝试了该页面上的确切示例,但我仍然遇到这些错误.我已经尝试过在Linux和Mac上完全没有想法了!

似乎Flex ++也是旧病毒的名称,所以特别难以得到有用的讨论!

编辑:

这是一个产生上述错误的示例(从上面的链接中获取的示例中的前几行):

%name CalcScanner
%define IOSTREAM
%define LEX_PARAM YY_CalcParser_STYPE *val, YY_CalcParser_LTYPE *loc
%define MEMBERS public: int line, column;                                                                                               
%define CONSTRUCTOR_INIT : line(1), column(1)

%header{
#include<sstream>
#include "parser.h"
%}
Run Code Online (Sandbox Code Playgroud)

任何帮助都不仅仅是太棒了.

编辑2:请允许人们通过将'flex'标签放入?来编辑此帖子吗?Flex将是我用来标记的,但Flex也是一种Adobe技术 - 它不是我使用的工具.SO上的flex标签用于Adobe产品(因此标签上的徽标).谢谢 :).

c++ lex flex++ flex-lexer

5
推荐指数
1
解决办法
761
查看次数

真的有 Flex++ 扫描仪吗?

我在 Debian Squeeze 上运行,并使用 apt-get install flex 安装了 flex/flex++。

不过我注意到 flex++ 只是一个指向 flex 的符号链接。那么,真的存在一个生成 C++ 扫描仪的“程序”flex++,还是只是一个我应该切换的 Flex 标志?

另外,常见的问题是:互联网上的许多示例无法在flex或flex++下“编译”。Flex 出现以下错误:

test.lex:1: invalid character: %
...
Run Code Online (Sandbox Code Playgroud)

当仅使用以下命令处理输入时:

%name Test
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题?

Flex/Flex++ 版本为 2.5.35

c++ yacc lex bison flex++

2
推荐指数
1
解决办法
4706
查看次数

标签 统计

flex++ ×3

lex ×3

c++ ×2

flex-lexer ×2

bison ×1

yacc ×1