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}