feat(xatu): add lint architecture

This commit was merged in pull request #71.
This commit is contained in:
2026-09-18 20:57:39 -04:00
parent d974a46211
commit 11f1eba26f
12 changed files with 359 additions and 12 deletions

36
src/xatu/ast.rs Normal file
View File

@@ -0,0 +1,36 @@
use crate::FileId;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Inherit {
pub attr_count: usize,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum NodeData {
Inherit(Inherit),
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct SourceRange {
pub start: usize,
pub end: usize,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Node {
pub range: SourceRange,
pub data: NodeData,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ParseError {
pub range: SourceRange,
pub message: String,
}
#[derive(Debug)]
pub struct ParsedFile {
pub file_id: FileId,
pub nodes: Vec<Node>,
pub errors: Vec<ParseError>,
}