pub struct ParsedDoc { /* private fields */ }Expand description
A successfully parsed document: source buffer, line index, and syntax root.
Use this as the single entry point for:
- Compiler:
root()to walk the tree,offset_to_line_col()andformat_diagnostic()for errors,source()for span slices. - Formatter:
root()fortoken_groups()and trivia,source()or token/node text for rewriting.
Implementations§
Source§impl ParsedDoc
impl ParsedDoc
Sourcepub fn new(source: Vec<u8>, output: &ParseOutput) -> Option<ParsedDoc>
pub fn new(source: Vec<u8>, output: &ParseOutput) -> Option<ParsedDoc>
Build a parsed document from the raw source and parse output.
Returns None if the output has no or invalid tree events (e.g. empty
or malformed). The source slice used during parsing should match what
you pass here so that token text and spans are correct.
Sourcepub fn from_slice(source: &[u8], output: &ParseOutput) -> Option<ParsedDoc>
pub fn from_slice(source: &[u8], output: &ParseOutput) -> Option<ParsedDoc>
Build a parsed document from a source slice and parse output.
Clones source into a Vec<u8>. Prefer new when you
already own a Vec<u8>. Returns None if the output has no or invalid
tree events.
Sourcepub const fn root(&self) -> &SyntaxNode
pub const fn root(&self) -> &SyntaxNode
Reference to the syntax tree root.
Sourcepub fn source_str(&self) -> &str
pub fn source_str(&self) -> &str
Source as UTF-8 str, or empty if invalid UTF-8.
Sourcepub const fn line_index(&self) -> &LineIndex
pub const fn line_index(&self) -> &LineIndex
Line index for this document (offset → line/column, snippets).
Sourcepub fn offset_to_line_col(&self, offset: u32) -> (u32, u32)
pub fn offset_to_line_col(&self, offset: u32) -> (u32, u32)
Line and column (0-based) for a byte offset.
Sourcepub fn offset_to_line_col_1based(&self, offset: u32) -> (u32, u32)
pub fn offset_to_line_col_1based(&self, offset: u32) -> (u32, u32)
Line and column (1-based) for error messages and IDE.
Sourcepub fn snippet_at(&self, offset: u32) -> String
pub fn snippet_at(&self, offset: u32) -> String
Single-line snippet with caret at the given offset (for ad-hoc errors).
Sourcepub fn format_diagnostic(
&self,
diagnostic: &Diagnostic,
literals: Option<&LiteralTable>,
rule_names: Option<&[&'static str]>,
expected_labels: Option<&[&'static str]>,
) -> String
pub fn format_diagnostic( &self, diagnostic: &Diagnostic, literals: Option<&LiteralTable>, rule_names: Option<&[&'static str]>, expected_labels: Option<&[&'static str]>, ) -> String
Format a parse diagnostic with line/column and source snippet.
Pass the grammar’s literal, rule-name, and expected-label tables for readable “expected” strings; otherwise literal/rule/label ids are shown.
Sourcepub fn span_slice(&self, span: Span) -> &[u8] ⓘ
pub fn span_slice(&self, span: Span) -> &[u8] ⓘ
Byte slice for a span (convenience for compiler/formatter).
Sourcepub fn format_semantic_diagnostic(
&self,
diagnostic: &SemanticDiagnostic,
) -> String
pub fn format_semantic_diagnostic( &self, diagnostic: &SemanticDiagnostic, ) -> String
Format a semantic (analysis) diagnostic with line/column and source snippet.
Use this to report validation/analysis errors and warnings in the same
style as parse errors. For miette reports, use
SemanticDiagnostic::into_miette with self.source_str() and your
file name.
Sourcepub fn node_at_offset(&self, offset: u32) -> Option<SyntaxNode>
pub fn node_at_offset(&self, offset: u32) -> Option<SyntaxNode>
Return the smallest syntax node whose range contains the given byte offset.
Sourcepub fn token_at_offset(&self, offset: u32) -> Option<SyntaxToken>
pub fn token_at_offset(&self, offset: u32) -> Option<SyntaxToken>
Return the deepest token at the given byte offset (including trivia).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ParsedDoc
impl RefUnwindSafe for ParsedDoc
impl Send for ParsedDoc
impl Sync for ParsedDoc
impl Unpin for ParsedDoc
impl UnsafeUnpin for ParsedDoc
impl UnwindSafe for ParsedDoc
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more