9得票2回答
正则表达式 - 匹配空白字符

我在编写一个正则表达式来去除输入中的所有空格,但是一直遇到困难。 我尝试过 \s+ 和 [ \t\t\r]+ 但是都没有生效。 我需要这个正则表达式因为我正在使用 flex 编写一个扫描器,而且我卡在了匹配空格上。空格应该只是被匹配而不是被移除。 例如输入: program 3.3 ...

9得票2回答
PLY LEX 和 YACC 的问题

我试图运行PLY的一个简单示例的第一部分,但是遇到了一个奇怪的错误。当我运行以下代码时,它会给我关于lex.lex()的错误。 有人知道问题是什么吗? import ply.lex as lex tokens = [ 'NAME','NUMBER','PLUS','MINUS','TIME...

9得票2回答
在Lex和Yacc中创建注释

如何在Lex和Yacc中添加注释? 到目前为止,我还没有尝试过Yacc,但是在Lex中我已经尝试了/* 注释 */和// 注释,但是这两种都无法编译。我正在使用内置的Lex和Yacc编译器(或者可能是X-Code的),我的电脑是Mac系统。请问在Lex或Yacc中添加注释的正确语法是什么,最...

9得票2回答
Lex - 如何在命令行上运行/编译一个Lex程序

我对Lex和Yacc非常陌生。我有一个Lex程序,例如:wordcount.l。 我使用Windows和Putty。 我只是尝试运行这个文件... wordcount.l文件放在C盘上吗? 我要编译Lex程序以生成一个.c程序,然后我要运行什么? 我试过在命令行中输入:Lex wo...

9得票1回答
致命错误:起始符不能生成任何句子。

我正在尝试使用Lex和Yacc开发一个计算器程序,但是一直收到以下错误信息: calc.y: warning: 5 nonterminals useless in grammar [-Wother] calc.y: warning: 8 rules useless in grammar [-...

8得票2回答
lex/yacc和fslex/fsyacc之间有什么区别?

我正在学习F#,因为我想编写一个词法分析器和解析器。我有一点点这种处理的经验,但是真正需要学好它以及F#。 当学习F#的词法/语法分析功能时,学习lex和yacc是否足够? 或者说fslex和fsyacc的代码与lex/yacc存在一些差异吗?

8得票2回答
如何消除flex和bison的“main”例程,以便我可以将词法分析和语法分析过程放入库中?

我正在开发一个解析JSON字符串的库,但遇到了问题。使用ld将我写的库链接时,出现了错误消息: main.o: In function `main': main.c:(.text+0x0): multiple definition of `main' json-parser.o:/build...

8得票3回答
如何设置Flex/Bison规则以解析逗号分隔的参数列表

我希望能够使用flex/bison解析非空、一个或多个元素、逗号分隔(可选用括号包围)的列表。以下是一些可解析的列表示例: 1 1,2 (1,2) (3) 3,4,5 (3,4,5,6) 我使用以下规则来解析列表(最终结果是解析元素“顶级列表”),但在解析时似乎无法得到期望的结果(输入有效...

8得票1回答
Lex/Flex:C/C++中字符串字面值的正则表达式?

我在这里看 ANSI C语法。 这个页面包含了许多用于ANSI C的Lex/Flex的正则表达式。 在理解字符串字面值的正则表达式时遇到了问题。 他们提到了正则表达式\"(\\.|[^\\"])*\" 据我所知,\"用于表示双引号,\\代表转义字符,.代表除了转义字符之外的任何字符,*...

8得票1回答
YAML解析 - 使用lex还是手动处理?

我正在尝试编写一个简单的YAML解析器,我已经阅读了yaml.org上的规范。在开始之前,我想知道是更好地编写手动解析器,还是使用lex(flex/bison)。我查看了libyaml(C库) - 似乎没有使用lex/yacc。除了流样式(flow styles),YAML似乎更多地基于行,因...