10得票6回答
如何在lex中使用yy_scan_string

我想解析一个字符串,我将在yacc的主函数中将其传递给解析器。我知道可以使用yy_scan_string来实现,但我不知道如何使用它。我在网上和手册中搜索了,但仍然不清楚。请帮帮我。

10得票1回答
一个程序中使用多个YACC语法分析器

如何在一个程序中编译、链接和调用不同的YACC语法,使用 yyparse() ?

10得票1回答
如何在Flex/bison中实现If语句

我不理解这个错误,请你帮帮我,这里有 .l 和 .y 文件。谢谢。 %{ #include "ifanw.tab.h" extern int yylval; %} %% "=" { return EQ; } "!=" { return NE; } "<" {...

10得票3回答
我该如何处理Flex词法分析器中的词法错误?

我目前正在尝试使用Flex+Bison编写一个小型编译器,但是在错误处理方面有些迷茫,特别是如何使所有东西协调一致。为了激发讨论,考虑以下我用于字符串字面量的词法分析器片段:["] { BEGIN(STRING_LITERAL); init_string_buffer(); ...

10得票2回答
在语句结尾解析可选的分号

我正在编写一个解析类C语法的解析器。 首先,它现在可以解析类似以下代码的内容:a = 1; b = 2; 现在我想让行末的分号变为可选项。 原始的 YACC 规则是:stmt: expr ';' { ... } 新行是由我编写的词法分析器处理的(以下为简化的代码):rule(/\r\n|\...

10得票1回答
从yacc文件中提取BNF语法规则

我有一个描述某种语言的yacc文件,我正在使用IMP(Eclipse项目)开发编辑器。我正在使用LPG作为解析器生成器,因此我需要从我的yacc文件中提取BNF规则。我收到的yacc文件包含规则和操作。然而,我想仅提取用于LPG的语法描述规则。一种方法是通过手动提取规则并将其重新格式化为BNF...

9得票2回答
yacc - 字段具有不完整的类型

yacc似乎不喜欢我定义的类型作为标记。 在我的语法(.y)文件的顶部,在一个%{ ... %}块中,我包含了一个定义以下结构的头文件: typedef struct _spim_register { spim_register_type type; /* This is a si...

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得票5回答
yacc/lex还是手写代码?

我正在开发一种新的编程语言,但我一直被所有人都在使用yaxx / lex解析代码的事实所困扰,而我没有。 我的编译器(已经可以工作)是用C ++ / STL手写的,我不能说它很复杂或花费了太多时间。它既有某种类型的词法分析器又有解析器,但它们不是自动生成的。 早些时候,我以同样的方式编写了...