Skip to main content

oak_ocaml/ast/
mod.rs

1use core::range::Range;
2use std::{string::String, vec::Vec};
3
4/// OCaml AST 根节点
5#[derive(Debug, PartialEq, Clone)]
6pub struct OCamlRoot {
7    pub items: Vec<OCamlItem>,
8}
9
10/// OCaml 顶层项
11#[derive(Debug, PartialEq, Clone)]
12pub enum OCamlItem {
13    Expression(OCamlExpr),
14}
15
16/// OCaml 表达式
17#[derive(Debug, PartialEq, Clone)]
18pub enum OCamlExpr {
19    Identifier { name: String, span: Range<usize> },
20    Literal { value: String, span: Range<usize> },
21}