问题标签 [lex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4678 浏览

c - 如何在 Lex 和 Yacc 中获取整个输入字符串?

好的,这就是交易。

用我的语言,我有一些命令,比如说

在我的 Lex 文件中

在我的 yacc 文件中

我的问题是,我怎样才能得到整个文本

在返回数字的同时进入命令?

另外,当我的 Lex 返回 STRING [0-9a-zA-Z]+,并且我想验证它的长度时,我应该这样做吗

或者实际上在我的 Lex 中有一个令牌,它根据长度返回不同的令牌?

0 投票
2 回答
3793 浏览

c - 如何初始化 Bison 的 %union 值?

在野牛我有一个工会

我想像这样使用它

在 Lex 中:

而不是

轻松防止内存泄漏

但是我需要一些方法来分配一个 std::string 到 sval 开始。

我怎样才能做到这一点?

0 投票
1 回答
1515 浏览

parsing - 在 Lex 而不是 Yacc 中处理错误条件?

假设我有一个 lex 正则表达式

如果用户输入

它会匹配

但是如果用户说类似的话

我希望它出错并说“无法识别字符 K,期待 S”

我现在正在做的只是像这样写

然后实质上重新对 Yacc 中的字符串进行词法分析,以便我可以有有意义的错误条件

我怎样才能解决这个问题?

我唯一能想到的是使用命名组?

0 投票
4 回答
10674 浏览

lex - lex.yy.c 中的“yy”代表什么?

lex.yy.c 中的“yy”代表什么?

0 投票
1 回答
4378 浏览

c - Flex(lex) 和 Bison(yacc) 的错误处理

来自野牛手册:

在每个输入为一行的简单交互式命令解析器中,允许 yyparse 在错误时返回 1 并让调用者在发生这种情况时忽略输入行的其余部分(然后再次调用 yyparse)可能就足够了。

这几乎是我想要的,但我在上班时遇到了麻烦。基本上,我想检测 flex 中的错误,如果检测到错误,让 Bison 丢弃整行。我现在拥有的东西不能正常工作,因为我的命令仍然被执行:

在我的野牛文件中:

在我的 Flex 中:

0 投票
2 回答
3736 浏览

c - 如何使用 Flex/Lex 和 Yacc/Bison 进行变量替换

维基百科的插值定义 我只是在学习 flex / bison,我正在用它编写自己的 shell。我正在尝试找出一种进行变量插值的好方法。我最初的方法是对我的主目录或 $myVar 之类的东西进行 flex 扫描,然后使用查找函数将 yyval.string 设置为返回的内容。我的问题是,当文本出现一个标记时,这对我没有帮助:

我对变量的 lex 定义:

然后在我的语法中,我有类似的东西:

有人知道处理这种事情的好方法吗?我对这一切都错了吗?

0 投票
3 回答
26036 浏览

g++ - 未定义对 'yylex()' 的引用

我正在尝试使用 flex 和 bison 创建一种简单的脚本语言。现在,我只是想让计算器工作。

不过,我无法编译它。当我运行这个makefile时:

在我的 .l 和 .ypp 文件中,我收到此错误:

如果我发出这样的命令all

它说它找不到-lfl。如果我这样做:

它回到undefined reference错误。

对不起,我对此一无所知。

编辑:我安装了 flex。我尝试将它从 -lfl 更改为 C:/GnuWin32/lib/libfl.a (我正在尝试使用 Windows,因为 Linux 在我的计算机上有奇怪的问题,而且我还没有 Mac),但它仍然有同样的错误。

0 投票
1 回答
102 浏览

yacc - yacc/bison 组合字题

我有一个如下的 if 语句

有效,太好了!但我输入了

它也有效:| 我该如何解决?以上应该是 var 名称而不是 if 语句

-edit-没关系,我想通了

0 投票
2 回答
2480 浏览

compiler-errors - 'yyerror' 的多重定义

使用 Bison(或 yacc)我如何解决错误

我尝试%option noyywrap nodefault yylineno在顶部编写原型。没运气。

-编辑-

没关系。当我复制粘贴一个示例以使用时,我没有意识到我已经有一个 yyerror 函数。

0 投票
1 回答
1086 浏览

c - 如何声明 C 字符串数组

我正在为类开发一个简单的 lex 程序,并在其中创建一个非常基本的符号表,只是一个带有线性扫描搜索的字符串数组。我已将其声明为:

我这样使用它:

但是,我一直在 strcmp 调用中遇到段错误。我确定我搞砸了一些超级简单的事情。