17得票5回答
为大量输入值快速评估数学表达式(函数)

以下问题: 如何在字符串中计算数学表达式 Python中的方程解析 Python中解析用户提供的数学公式的安全方法 如何在Python中评估来自不安全用户输入的数学方程 及其相应的答案让我思考如何高效地解析一个单一的数学表达式(通常类似于此答案https://dev59.com/...

8得票1回答
如何在VS Code扩展中访问活动文件的AST?

我该如何从我的扩展中访问VS Code为活动文件所拥有的抽象语法树?我一直在查看API文档,但没有找到任何相关信息。我也看到了这个SO问题,但是对我来说,问题和答案都相当难懂。

18得票1回答
在AST操作中,使用Rc包裹下行特征

我正在尝试在Rust中操作抽象语法树(AST)。将会有许多操作,并且我想让我的树是不变的,为了节省时间,所有引用都将是Rc。 我的树节点将如下所示:enum Condition { Equals(Rc<Expression>, Rc<Expression>),...

8得票1回答
使用Java的访问者模式从AST构建控制流图

我正在尝试实现LEParserCfgVisitor类以从已使用JavaCC生成的抽象语法树中构建控制流图。我知道已经存在工具,但我正在为我的编译器期末考试做准备而尝试自己完成。 我知道需要有一个数据结构来在内存中保存图形,并且我希望能够在每个节点中保留IN、OUT、GEN、KILL等属性,以...

7得票1回答
如何使用Cofree注释处理AST?

我有一个简单的 Expr AST,我可以轻松地将它转换为 String。 import Prelude hiding (Foldable) import qualified Prelude import Data.Foldable as F import Data.Functor.Folda...

7得票5回答
C#中的System.Linq.Expressions用于什么?

LINQ是.NET 4.0中的新特性,不支持旧版本如.NET 3.5。它有什么用处?它似乎能够构建表达式树。实际上,什么是表达式树?LINQ能否从C#文件中提取类、方法和字段等信息? 是否可以提供一个可行的代码片段来演示LINQ的功能?

7得票2回答
在Clang中如何确定访问的CXXRecordDecl是类、结构体还是联合体

我使用 Clang 来从 C++ 源代码构建AST,并使用 RecursiveASTVisitor 遍历树。 我想在访问记录声明时确定它是类、结构体还是联合体。我有一个重载的函数 VisitCXXRecordDecl(clang::CXXRecordDecl)。在这个函数中,我可以 检查类提...

12得票1回答
使用ASTMatcher获取所有的"malloc"调用

我正在尝试使用clang中的ASTMatcher获取所有malloc调用。这是代码示例:Finder.addMatcher( callExpr( hasParent(binaryOperator( hasOperatorName("=")).bi...

27得票3回答
一门面向对象的编程语言的抽象语法树(AST)会是什么样子?

我正在学习AST(抽象语法树),但我看到的所有示例都使用了如下表达式:a + b * c 这可以用类似Lisp的语法表示为:(+ a (* b c) ) 哪个选项相当于: + / \ a * / \ b c 我的问题是,面向对象编程语言中类的抽象语法树是什么样的? ...

10得票3回答
如何从简单函数中提取名称?

我有这段代码:import inspect import ast def func(foo): return foo.bar - foo.baz s = inspect.getsource(func) xx = ast.parse(s) class VisitCalls(ast....