gpt4 book ai didi

erlang - 在 Erlang 中创建一个 AST 节点

转载 作者:行者123 更新时间:2023-12-02 07:13:47 24 4
gpt4 key购买 nike

我正在研究 Erlang,我正在尝试编写一个简单的算术解析器。

我想尝试解析以下表达式:

((12+3)-4)

我想将表达式解析为一堆 AST 节点。在解析这个表达式时,我首先会为 (12+3) 表达式创建一个二进制表达式,它在 C# 中看起来像这样:

var binaryStructure = new BinaryStructure();
binaryStructure.Left = IntegerLiteralExpression(12);
binaryStructure.Right = IntegerLiteralExpression(4);
binaryStructure.Operator = binaryExpression.Operator != BinaryOperatorType.Addition;

我是 Erlang 的新手,我想知道如何在 Erlang 中创建这样的结构,我可以将它放在一个列表中,用作表达式堆栈。

谁能建议如何创建这样的树状结构?函数是否合适?

最佳答案

在像 Erlang 这样的函数式语言中,它要简单得多。做到这一点

{'+', 12, 3}

更抽象的方式

A = 12,
B = 3,
OP = '+',
{OP, A, B}.

关于erlang - 在 Erlang 中创建一个 AST 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2975770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com