问题标签 [lexical-analysis]
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.
lexical-analysis - 这个 lex 文件有什么问题?
我有一个 Makefile,这样当我输入 make 时,会运行以下命令:
但在此之后,我收到以下错误消息:
这就是计算器内部的内容。如何修复?
yacc - 这个程序的符号表是什么时候建立的
当我在以下 Makefile 上运行 make 时,符号表是什么时候构建的,如果它甚至是?
compiler-construction - 这个程序语法是否只识别名称为“ID”的变量?
我需要在 lex/flex 中创建一个扫描仪来查找令牌,并在 yacc/bison 中创建一个解析器来根据以下语法处理这些令牌。当我在制作扫描仪的过程中,在我看来,这种语言中的变量、函数和数组只能有名称“ID”。我误读了这个 yacc 文件吗?
yacc - 词法分析器如何返回解析器使用的语义值?
是否总是需要这样做?它是什么样子的?
grammar - 为什么我在使用 flex 和 yacc 编写的程序中出现语法错误?
我制作了一个应该识别简单语法的程序。当我输入我认为应该是有效的陈述时,我得到一个错误。具体来说,如果我输入
诠释一个;
诠释 b;
它不起作用。在我输入 int a; 程序回响;由于某些原因。然后当我输入 int b; 我收到语法错误。
lex 文件:
yacc 文件:
grammar - 如何将文字从 flex 返回到 yacc?
在我的 yacc 文件中,我有如下内容:
ID、NUM、INT 和 VOID 是从 flex 返回的标记,因此 yacc 识别它们没有问题。问题是上面有'['和';'之类的东西。当这些都被flex识别出来了,应该给yacc返回什么?
regex - 在 flex 中使用正则表达式 [\[\];]
如果我的 flex 文件中有以下内容,它会做什么?
grammar - 我用 flex/yacc 制作的程序并不总是能识别标识符
我制作了一个应该识别简单语法的程序。当我输入我认为应该是有效的陈述时,我得到一个错误。具体来说,如果我从一个标识符开始,我会自动得到一个语法错误。但是,我注意到如果标识符前面带有“int”,则使用标识符不会产生错误。如果 a 是一个标识符,那么如果我输入 'int a;' 还行吧。但是如果我输入 'a = 3' 我会得到一个错误。只需键入 a 本身就会产生错误。
lex 文件:
yacc 文件
gcc - 我的 flex/yacc 程序在两台不同的 linux 机器上编译不同
一台机器,一切编译正常。在另一台机器上,当我使用 gcc 创建输出文件时,它会抱怨 -ly 选项。如果我删除 -ly 选项,那么它会生成程序,但它会以不同的方式运行。发生了什么。如何让程序在这台 linux 机器上正确运行?
python - 匹配多个正则表达式组并删除它们
我得到了一个文件,我想从中提取有用的数据。文件的格式是这样的:
ETC...
我想要做的是删除 LINE: 和行号以及 TOKENKIND: 所以我只剩下一个由 'somedata somedate somedata...' 组成的字符串
我正在使用 Python 来执行此操作,使用正则表达式(我不确定是否正确)来匹配我想要删除的文件的位。
我的问题是,如何让 Python 匹配多个正则表达式组并忽略它们,将我的正则表达式不匹配的任何内容添加到我的输出字符串中?我当前的代码如下所示: