Skip to main content

oak_vampire/ast/
mod.rs

1#![doc = include_str!("readme.md")]
2
3use core::range::Range;
4use serde::{Deserialize, Serialize};
5
6/// Vampire 根节点
7#[derive(Clone, Debug, Serialize, Deserialize)]
8pub struct VampireRoot {
9    #[serde(with = "oak_core::serde_range")]
10    pub span: Range<usize>,
11    pub formulas: Vec<VampireFormula>,
12}
13
14/// Vampire 公式
15#[derive(Clone, Debug, Serialize, Deserialize)]
16pub struct VampireFormula {
17    #[serde(with = "oak_core::serde_range")]
18    pub span: Range<usize>,
19    pub name: String,
20    pub role: String,
21    pub formula: String, // 暂时用字符串表示,实际应为逻辑树
22}
23
24/// Vampire 包含指令
25#[derive(Clone, Debug, Serialize, Deserialize)]
26pub struct VampireInclude {
27    #[serde(with = "oak_core::serde_range")]
28    pub span: Range<usize>,
29    pub path: String,
30    pub selection: Vec<String>,
31}