抽象语法树(AST)表示正式文档(程序源代码)的递归结构。
给定一个算术表达式,例如x + y*z,我想将其转换为add(x,multiply(y,z))。 我在这里发现了一个有用的功能: > 获取AST <- function(ee) purrr::map_if(as.list(ee), is.c...
这可能是一个很长的阅读,提前抱歉。这是我一直在从事的个人编译器项目。采用 EBNF 语法并将其编译为自动构建的 C++、flex 和 bison 代码...
我有一个玩具编程语言的 AST。我需要找到未使用的赋值,即赋值使得写入此变量的值保持未读取状态,直到程序结束,或者直到...
例如,如果我想将大于更改为小于或等于,我已成功执行: def Visit_Gt(自身, 节点): new_node = ast.GtE() 返回 ast.copy_location(new_node, 节点...
Neovim Treesitter 中带有标记模板文字的自定义注入
我正在尝试为 Neovim 的 Treesitter 编写一个自定义注入,它将突出显示标记的模板文字作为 SQL 代码。 有问题的代码如下所示: 从“postgres”导入sql c...
我正在尝试用Python开发一个方程解析器,最终包含子公式。这个想法是,用户可能会给出一个其变量并非全部已知的方程。但有些子公式可能会...
如何从 TypeScript AST 中的 Type 获取命名空间?
我正在使用 TS 编译器 API 遍历一个方法,该方法有一些返回类型。 我需要该类型的信息,例如它来自哪个包以及它是否在命名空间下公开。 这是……
你好。 我有一些 Python 源代码,我正在尝试使用 LibCST 修改它们。简而言之,我需要将 3 个模块导入到源 .py 文件中的特定位置。我使用 LibCST 而不是 AST
我正在尝试使用 ts-morph 来验证我正在编写的转译器中的代码。不,它不是 TypeScript 转译器,但我需要在原始文件中支持 JS 和 TS 代码。 我有以下...
对于给定的 JavaScript 代码,是否可以访问 v8 引擎的 AST?我正在使用 V8 引擎开发 JavaScript 静态分析器。
如何检查 ast 节点是否是 Python 中另一个文件中定义的类的实例
我在两个文件中有以下代码: person_list.py 类 AbstractPerson: 经过 PersonA 类(AbstractPerson): 经过 类 PersonB(PersonA): 经过 代码1.py 从 person_list 导入 * ...
我正在考虑我的 AST 应该是什么样子。 我发现标准 AST 是: { 类型:...,值:...,子项:...} 不幸的是,我在打包时遇到了问题,例如: 变量 x 整数 = 100 我确实...
我正在尝试创建一个 gradle 项目,将项目 A 中定义的全局 AST 转换应用到项目 B 中定义的类。我一直按照本指南中的说明进行操作,但没有成功...
如何在不调用 reolve() 的情况下从 methodCallExpr 获取类名
使用Java中的javaparser库,我有一个提取methodCallExpr的Visitor类。现在我想获取调用它们的对象的类名。例如: a.sayHi(); 当我打电话时
创建将 Annotation 类型转换回类型的函数的开头后: @类型检查 def extract_type_from_annotation( *, 注释:联盟[ 下标、索引、名称、
我正在创建一个代数标记生成器/解析器,其中各个标记原型(例如运算符、函数、常量...)的实现包含在 Context 结构中,这样我就没有...
解决 Yacc 和 Flex 编译器项目中的错误 |无法从 YACC Grammar 生成 AST
我想显示给定表达式的 AST,下面给出的是我的相同代码 莱克斯文件 %{ #include“y.tab.h” #include“ast.h” %} %选项 yylineno 数字 [0-...
如何将 web-tree-sitter 添加到 NextJS 项目?
我希望能够通过解析在我的 NextJS Web 应用程序上键入的代码来生成 AST。我发现我应该使用 web-tree-sitter 来实现这样的事情。 我成功地使用 Docker 生成了树-...
如何将通用表达式消除 (CSE) 与 codegen 一起使用
我正在尝试使用 sympy.utilities.codegen。我需要计算一个复杂的函数及其导数。作为一个简化的例子,函数 f 是 x = 符号('x') y = 符号('y') f = 1 / (x - y) df = f...
我想开发一个基因程序,可以解决一般问题,例如在电脑游戏中生存。由于这是为了娱乐/教育,我不想使用现有的库。 我想出了