cost 191 ms
Yacc 解析器没有很好地检测到我的语言 - Yacc parser not detecting my language well

我是 yacc 的新手,我正在尝试为我的语言定义一些规则。 我写了一个“很好”的语法,它运行和执行时没有错误,但由于某种原因,它没有做它应该做的事情。 mylex.l myyacc.y 测试用例 Output 它还会得到错误的行号。 一段时间以来,我一直试图看看我做错了什么,我真的很感激第二双 ...

2023-01-21 18:50:38   2   28    yacc / lex  
使用 lex 编译简单打印文件时出现 Linker 错误。 安装了最新版本的 macOS 13.1 和 xcode - Linker error while using lex to compile simple print file. have newest version of macOS 13.1 and xcode installed

我正在尝试在 flex 中运行一个简单的程序,它读取字符串“hello world”并打印“Goodbye” 这是文件: 命令是 错误信息: ld:警告:object 文件 (/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/ ...

YACC LEXX IF AND ELSE 计算器 - YACC LEXX IF AND ELSE calculator

我对这段代码有疑问我想在 YACC 和 LEX 中创建一个 IF / ELSE。 但我很难检测到条件并执行正确的块(因为它取决于条件! 我必须制作一个考虑到我添加了 TOKEN 的 IF 和 ELSE 的计算器。 expr 允许计算一个表达式 stmt 和 stmtlist 允许有很多 imbra ...

2023-01-16 15:41:01   1   61    c / yacc / lex  
FLEX C++ yytext function - FLEX C++ yytext function

代码不是用英文写的(变量名,但这应该不是问题)。 yytext function 没有复制我想复制的内容。 这是.l文件中的相关代码: 这是文本文件(输入): 还有 output(如您所见,它只复制 corectly 之后的变量): ...

2023-01-09 21:07:25   1   36    c++ / lex  
基于 Lex/Yacc 的 C 解析器:为什么未诊断未终止的字符串文字? - Lex/Yacc based C parser: why unterminated string literal is not diagnosed?

我从 Lex/Flex 和 YACC/Bison 语法( 1 、 2 )构建了 C 解析器,如下所示: 然后测试这个 C 代码: 预计会产生missing terminating " character (或syntax error )诊断信息。但是,它不会: 为什么? 如何解决? 注意: STR ...

lex如何匹配token - How does lex match tokens

我正在学习 lex。 我制作了一个包含一条规则的简单 lex 文件: 运行lex file.l后,我想检查输出文件file.yy.c 。 我假设词法分析器以某种方式存储标记,并将其与输入匹配(可能使用 switch 语句)。 查看文件,我可以看到 output ( puts(“response\n ...

Lex/Yacc 计算器不处理特殊情况 - Lex/Yacc Calculator Not Handling Unique Situation

我正在研究 Lex+Yacc 计算器,它能够执行基本的算术运算,并支持括号的使用。 根据我的测试,它基本上能够处理所有情况,为有效输入提供 integer 解决方案,并在提供无效输入时指示输入无效。 然而,在我的测试中,我发现如果我简单地输入: 5)或99+22+33)或基本上任何以 ')' 为结尾 ...

2022-11-23 17:51:27   1   31    c / yacc / lex  
(Python Lex-Yacc 处理歧义语法)对字符串查询应用数学优先规则 - (Python Lex-Yacc Dealing With Ambiguous Grammars) Applying Math precedence rules on string query

我是 Lex-Yacc 的新手,我有一个 Python Lex-Yacc Parser 用于解析字符串查询。 它的工作正常,优先规则如下: 但我想添加额外的步骤来遵循带有额外括号的优先规则。 例如: 进入: 怎样才能实现这些步骤? ...

解析带有两个连续单引号的单引号分隔字符串 - Parsing a single quote-delimited string with two sequential single quotes inside

我正在为一种语言编写 (f)lex/bison/C 解析器,其中字符串用单引号引起来。 字符串中的引号重复。 例如,以下是一个有效的字符串: 'Hello, ''world''!' . 我不在 position 中更改语言语法。 我能够通过使用开始条件来标记 (f)lex 中的字符串: 并将最终的 ...

flex/bison 如何让它识别一个模式,不管最后一个字符是不是一个点? - flex/bison How can I make it recognize a pattern, whether the final character is a dot or not?

我尝试对 prolog 的代码进行分析器/解析器,这是一个事实示例:“dadof(arturo,armando)”。 它以点 (.) 结尾,我的解析器识别它然后打印 ("hecho") 但我有另一个选择,如果输入是 "dadof(arturo,armando)",它无法识别它。 唯一的区别是没有点 ...

在解析语法中更明确或更不明确更好? - Better to be more explicit or less explicit in a parsing grammar?

假设我有一种类似 SQL 的语言,它支持查看两个表达式是否只有当它们是相同类型时才相等,如果它们不是相同类型,则会引发错误。 例子是: 最好的产品是什么? 或者更详细的东西,它会尝试在词法分析(解析?)阶段捕获类型错误,例如: ...

output() 函数与简单的 printf 或 fprintf 语句有何不同或更好? - How is the output() function different than, better than, a simple printf or fprintf statement?

我正在阅读的一本书 [1] 说了一些我需要帮助理解的内容。 本书首先描述了 input()、output() 和 unput() 函数。 然后它说: output() 的使用允许 Lex 用作独立数据“过滤器”的工具,用于转换数据流。 下面是我创建的词法分析器。 它是一个独立的数据过滤 ...

鉴于 0 表示文件结束,如何在 Flex 词法分析器中处理 NUL 字符? - How to process NUL characters in a Flex lexer, given that 0 denotes end-of-file?

我的输入文件由一个字节组成,即 NUL 字符(十六进制 0)。 我有一个与 NUL 字符匹配的 Flex 规则,并且操作返回它: 下面是我完整的 Flex 文件。 当我运行它时,我没有得到任何输出。 我得出结论,词法分析器正在将从我的规则返回的值解释为文件结束信号。 是的? 如果是这样,如何在 ...

哪里可以匹配默认规则? - Where can the default rule be matched?

我已经慢慢习惯了弹性词法分析器的奇思妙想,虽然它曾经很酷(1)我设法让它真正工作并且(2)我已经了解它是如何工作的,但我不知道如何改进我的语法定义。 语法是中等复杂的,所以我不想在这里粘贴它。 我添加了它 - 见下文但这里是构建统计信息。 /usr/local/bin/flex -P -d -v ...

使用 Flex -d 命令行标志,为什么我得到 --(缓冲区结束或 NUL)? - With the Flex -d command line flag, why am I getting --(end of buffer or a NUL)?

我在运行 Flex 时使用了 -d 标志,以便扫描器生成调试消息。 它工作正常,但输出包含一些奇怪(意外)的东西。 下面我展示了一个词法分析器的输出,它标记了名称、数字和换行符。 注意输出的第一行: 嗯? 那是什么? 然后还有几个接近尾声。 它们都是关于什么的? ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM