腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
从
逻辑
表达式
创建
AST
javascript
、
parsing
、
logic
、
abstract-syntax-tree
、
postfix-notation
我想我应该
从
定义一些运算符开始(运算符类型对应于运算符符号) 'v' : 'or', '->': 'implication'expression = [operators[token], expression]; 因此,
表达式
被保留,但在数组中处于嵌套级别。
浏览 18
提问于2016-09-10
得票数 1
1
回答
在LR解析中,是否可以构造一个非二进制
AST
?
python
、
parsing
、
abstract-syntax-tree
、
yacc
、
lr
,虽然这种解析方法将正确检查语法并表示所解析的
逻辑
表达式
的含义,但解析器将将
AST
构造为二叉树。因此,如果让它解析以下两个
表达式
:得到的
AST
看起来是一样的(具有正确的结合性)。 对于我的项目中的另一个部分,重要的是将连接和分离操作视为n元操作而不是二进制操作。以上面的第一个
表达式
为例,将分离运算同时应用于三个操作数p、q和r。我需要通过查看
AST
本身来区分上面的两个示例
表达式
。,LR解析是否有可能
创建
具有
浏览 1
提问于2020-07-19
得票数 0
6
回答
逻辑
表达式
解析器
parsing
、
logic
、
expression
我正在尝试为这样的
表达式
创建
一个
逻辑
表达式
解析器:((VariableA -> VariableB)而不是VariableC)解析器应该能够返回,无论对于给定的变量值,结果是真还是假。基本上,
表达式
将只包含变量、
逻辑
运算符(或、与、隐含、等价、否定和括号)。 我想问一下,实现这种解析器的最佳方式是什么(使用
AST
树,或反向波兰表示法)?
浏览 1
提问于2009-05-05
得票数 3
1
回答
如何对Python进行跟踪存储操作?
python
、
python-3.x
、
abstract-syntax-tree
、
interpreter
使用
AST
工具获取代码执行的所有
逻辑
步骤(包括
表达式
计算步骤)的通知。 print(i) 这将在ctx=
ast
.Store()节点中给出一个ctx=
浏览 3
提问于2018-07-03
得票数 4
回答已采纳
1
回答
从
f-字符串中提取
表达式
python-3.x
、
abstract-syntax-tree
、
static-analysis
我需要这个工具的一部分是提取在f字符串中出现的所有
表达式
,理想的格式与它们在代码中出现的方式完全相同。f'{a+b} {c *d}' -> ['a+b', 'c *d']我能想到的最好的解决方案是返回
表达式
,但不保留原始格式: import
ast
# requires python3.9 for
浏览 7
提问于2022-02-24
得票数 0
回答已采纳
2
回答
共享由单一操作计算的信息
haskell
、
compiler-construction
、
monads
、
sharing
我使用不动点数据类型递归来表示抽象语法树(
ast
)。例如,考虑输入程序。例如,为了
浏览 6
提问于2012-05-18
得票数 5
3
回答
Haskell解析器到
AST
数据类型,赋值
parsing
、
haskell
、
abstract-syntax-tree
Expr ::= Int | - Expr | + Expr Expr | * Expr Expr | Var | let Var = Expr in Expr将输入字符串拆分为令牌列表
ast
::[String] -> (
AST
,[String])p
浏览 4
提问于2012-10-03
得票数 8
回答已采纳
3
回答
如何在函数中
从
exec返回值?
python
、
string
、
python-2.7
、
exec
'{1}".format(w,sli) return s 其返回'TEST12344':2 如何在函数中
从
exec
浏览 0
提问于2015-10-29
得票数 5
回答已采纳
3
回答
编译器
AST
如何实现语句和
表达式
compiler-construction
、
abstract-syntax-tree
目前正在开发一个小型玩具编译器,请考虑以下代码:abstract class
AST
{ /* codegen methods */} abstract class Statement :
AST
{} abstract class Expression :
AST
{}如果在
表达式
中使用它,它将是
表
浏览 2
提问于2015-10-30
得票数 3
回答已采纳
1
回答
Z3 c++ api替换数组
c++
、
arrays
、
z3
、
substitution
我试图对包含数组和整数的
表达式
使用替换。我在替换后得到分割错误。以下是代码: vector<Z3_
ast
> vars_
ast
,primed_vars_
ast
; primed_vars_
ast
.
浏览 2
提问于2015-12-10
得票数 1
回答已采纳
1
回答
是
从
infix转换到后缀,然后在数学评估器上构建
AST
吗?
parsing
、
math
、
evaluation
我正在做一个数学
表达式
解析器,它将文本解析成抽象语法树(我对此不太了解)。我在维基百科上读到过,人们可以使用将一个线性的令牌序列解析成 ,或者将解析成
AST
本身,但是我无法找到任何使用分流码直接插入到
AST
解析的例子。现在,我正在使用调车场
从
infix转换为后缀符号,然后使用这样的输出来构建
AST
。 将
表达式
转换为后缀符号,然后
从
它构建
AST
是很好的做法,还是我有点笨拙?
浏览 0
提问于2018-12-18
得票数 6
回答已采纳
1
回答
如何在“eval”模式下编译
ast
节点
python
、
abstract-syntax-tree
我想要
创建
一个代码对象,稍后我可以在eval中重用它。我需要基于一些以编程方式生成的
ast
节点来实现这一点,因此不能将代码作为字符串传递给compile函数。如何构造一个有效的
ast
节点进行编译?以下是我尝试过的几件事:exe = compile(tree.body[0], filename="", mode="eval") tree =
ast
浏览 0
提问于2019-09-11
得票数 5
回答已采纳
1
回答
为什么不推断所有的静态类型?
python
、
parsing
、
abstract-syntax-tree
、
static-typing
、
inferred-type
在使用
ast
模块生成的
AST
时,我突然想到,考虑到这样的规则,可以推断所有类型,所以不应该需要类型注释。给定静态类型杂注(可能是代码文件顶部的注释),解析器中的另一层
逻辑
可以遍历
AST
以确定所有变量的类型。例如,
从
获取这段代码片段 for s in f: d[word] = d.get(word, 0) + 1 d
浏览 0
提问于2019-01-11
得票数 1
回答已采纳
2
回答
如何手动构建
AST
?
ruby
、
parsing
、
abstract-syntax-tree
、
lexer
、
ll
我目前正在学习解析,但我对如何生成
AST
感到有点困惑。我已经编写了一个解析器,它可以正确地验证
表达式
是否符合语法(当
表达式
符合语法时,它是静默的,当
表达式
不符合时,它会引发异常)。我该
从
哪里开始构建一个
AST
?我发现了大量关于构建LL(1)解析器的信息,但随后构建
AST
的信息却很少。我当前的代码(用非常简单的Ruby语言编写,包括一个词法分析器和一个解析器)可以在github上找到: 有没有人能解释一下我是如何
从
目前的状态转换到
AST
浏览 8
提问于2012-04-12
得票数 9
回答已采纳
1
回答
Python用于容纳两个或多个子节点的运算符节点
python
、
algorithm
、
recursion
、
abstract-syntax-tree
、
bnf
except (OperandMissing, UnexpectedToken) as err: return _evaluate_tuple(
ast
) return
ast
print(f"
AST
: {
ast
}")
浏览 1
提问于2020-12-07
得票数 0
1
回答
如何将对指数运算符的支持添加到boost::spirit计算器中?
c++
、
boost
、
grammar
、
boost-spirit-qi
注意,像"-2^2^3“这样的
表达式
必须被解析为"-(2^(2^3))”== -256。/calculator/
Ast
.hpp:83:12:注意:计算器::
ast
:
表达式
:./calculator/
Ast
.hpp:83:12:注意:候选人期望0参数,1提供./const/
Ast
.hpp:83:12:注意:计算器::
ast
:
表达式
(const计算器::
ast
浏览 2
提问于2014-01-09
得票数 2
回答已采纳
1
回答
如何销毁匹配语法::ptr::P?
rust
我有一个函数试图匹配一个syntax::
ast
::ExprBinary(syntax::
ast
::BinOp, syntax::ptr::P<
ast
::Expr>, syntax::ptr::P<syntax::
ast
::Expr>),但是我找不到与P匹配的正确语法,所以我
从
它中提取了包含的
表达式
。
浏览 3
提问于2015-04-29
得票数 3
回答已采纳
1
回答
Z3_get_
ast
_id的Z3意义
z3
我想知道Z3_get_
ast
_id()的语义。什么时候两个
表达式
会有相同的id?如果两个
表达式
是使用相同的上下文和相同的参数和操作码
创建
的,那么id是否相同?我还看到有Z3_get_
ast
_hash()。也请告诉我这个函数的语义。
浏览 2
提问于2014-11-05
得票数 1
3
回答
yacc程序将算术
表达式
转换为后缀
compiler-construction
、
yacc
、
lex
、
bnf
、
postfix-notation
我刚接触lex和yacc程序,我一直在尝试编写一个yacc程序,它将算术
表达式
作为输入,并将后缀符号作为输出。yyerror (char *msg) {} 但是这段代码正在编译correctly.But输出是不正确的,如果在
表达式
中使用
浏览 0
提问于2015-04-16
得票数 0
1
回答
Python
AST
: TypeError重写节点
python
、
parsing
、
abstract-syntax-tree
我正在尝试使用PLY和Python的ASTs从头开始
创建
一个方程求解器。
从
输入2 + x开始,我首先将其转换为N.Number(2) + x。为什么?因为我对实数使用了我自己的类。现在,我
从
第一步的输出
创建
一个
AST
。在这里,我想重写'x',通过一个函数调用Node来改变它的名称Node,以得到类似这样的结果:N.Number(2) + N.Number(42)。(func=
ast
.Attribute(value=
ast
.Name(id='
浏览 13
提问于2020-05-15
得票数 0
回答已采纳
点击加载更多
热门
标签
更多标签
云服务器
对象存储
ICP备案
云点播
腾讯会议
活动推荐
运营活动
广告
关闭
领券