vize_l1 0.601.0

L1 - the lossless Vue-template surface tree (codename Sinopia, Davinci P2-7)
Documentation
//! L1 markup: the concrete syntax of markup grammars (#6835).
//!
//! Markup is a grammar × profile matrix. The grammar is the markup language
//! family (Vue now; Svelte, Angular and others later). The profile selects
//! the host rules: [`profile::Document`] for HTML and in-DOM templates
//! (petite-vue) and [`profile::Component`] for SFC `<template>` content.
//!
//! One shared state machine, [`lex::Lexer`], is generic over the profile
//! and its event [`token::Sink`], so every per-profile branch is resolved at
//! compile time. Directive-name decomposition is not part of the lexer: it
//! is a dialect syntax hook ([`directive::DirectiveSyntax`]), like an MLIR
//! custom assembly format.
//!
//! The profile-generic lexer, entity decoder and compatibility callback
//! adapter are available in default builds. [`parse_component`] constructs a
//! native surface tree with checked admission and dialect-owned `v-pre` scope.
//! The surface [`parse`] entries and compiler products retain
//! their existing parser routes through the published tokenizer facade;
//! that facade executes this same lexer while preserving callback policy.
//! Replacing product parser routes still requires fix-history and parity gates.
//! The Vue dialect provides allocation-free directive decomposition with checked
//! source admission; typed Shape dispatch remains unfinished.
//! Design: <https://github.com/ubugeeei-prod/vize/issues/6836#issuecomment-5847794929>.

pub mod directive;
pub mod document;
pub mod entity;
pub mod grammar;
pub mod lex;
mod native;
pub mod parse;
pub mod profile;
pub mod render;
pub mod surface;
pub mod token;

pub use directive::{
    ArgSyntax, DirectiveName, DirectiveNameError, DirectivePrefix, DirectiveSyntax, VueDirectives,
};
pub use grammar::{MarkupGrammar, Vue};
pub use lex::{Delimiters, LexOptions, Lexer};
pub use native::{
    NativeAttribute, NativeAttributeBindingExpression, NativeAttributeBindingExpressionView,
    NativeAttributeExpression, NativeAttributeExpressionFailure, NativeAttributeExpressionView,
    NativeAttributeForHead, NativeAttributeForHeadFailure, NativeAttributeForHeadView,
    NativeAttributeHandler, NativeAttributeHandlerFailure, NativeAttributeHandlerView,
    NativeAttributeHead, NativeAttributeOperandError, NativeAttributeValue,
    NativeAttributeValueFailure, NativeAttributeValueView, NativeAttributes, NativeChild,
    NativeChildren, NativeComponent, NativeConditionKind, NativeElement, NativeElementClosingName,
    NativeElementNameRefusal, NativeElementNames, NativeInterpolationError,
    NativeInterpolationFailure, NativeInterpolationOperand, NativeInterpolationView,
    NativeRootText, NativeRootTextError, NativeRootTextProfile, NativeRootTextView,
    NativeScriptSelection, NativeStaticBindingHead, NativeTemplateComponent, NativeTemplateGrammar,
    NativeTextValue, NativeTextValueError, NativeTextValueFailure, NativeTextValueView,
};
pub use parse::{
    ComponentParse, ComponentSourceError, DirectiveAdmission, SurfaceError, SurfaceParseOptions,
    parse, parse_component, parse_component_with_authored, parse_component_with_options,
    parse_with_authored, parse_with_options,
};
pub use profile::{Component, Document, Profile, ProfileKind};
pub use render::{HoleCounts, check_fidelity, hole_counts, render};
pub use surface::{
    AttrValue, Attribute, CloseTag, Element, ElementClose, Interpolation, OpenTag, SurfaceChild,
    SurfaceTree, Token, TokenStatus,
};
pub use token::{LexErrorCode, LexMode, Namespace, QuoteType, Sink};

pub use native::{NativeLintComponent, NativeLintTag, NativeLintTagKind, NativeLintTagRefusal};