37 lines
667 B
Rust
37 lines
667 B
Rust
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>,
|
|
}
|