Skip to main content

oak_wolfram/ast/
mod.rs

1/// Wolfram 根节点
2#[derive(Clone, Debug)]
3pub struct WolframRoot {
4    pub expressions: Vec<WolframExpression>,
5}
6
7/// Wolfram 表达式
8#[derive(Clone, Debug)]
9pub enum WolframExpression {
10    Identifier(String),
11    Number(String),
12    String(String),
13    Call(WolframCall),
14    Binary(WolframBinary),
15    List(Vec<WolframExpression>),
16}
17
18/// Wolfram 函数调用 (e.g., f[x, y])
19#[derive(Clone, Debug)]
20pub struct WolframCall {
21    pub head: Box<WolframExpression>,
22    pub arguments: Vec<WolframExpression>,
23}
24
25/// Wolfram 二元运算 (e.g., a + b)
26#[derive(Clone, Debug)]
27pub struct WolframBinary {
28    pub left: Box<WolframExpression>,
29    pub operator: String,
30    pub right: Box<WolframExpression>,
31}