oak_julia/ast/
mod.rs

1use serde::{Deserialize, Serialize};
2
3/// Julia 根节点
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub struct JuliaRoot {
6    pub statements: Vec<JuliaStatement>,
7}
8
9/// Julia 语句
10#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
11pub enum JuliaStatement {
12    Function(JuliaFunction),
13    Expression(JuliaExpression),
14    Error,
15}
16
17/// Julia 函数定义
18#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
19pub struct JuliaFunction {
20    pub name: String,
21    pub body: Vec<JuliaStatement>,
22}
23
24/// Julia 表达式
25#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
26pub enum JuliaExpression {
27    Identifier(String),
28    Literal(String),
29    Binary { left: Box<JuliaExpression>, op: String, right: Box<JuliaExpression> },
30}