Skip to main content

oak_xml/language/
mod.rs

1//! XML language definition.
2
3use oak_core::{Language, LanguageCategory};
4
5#[cfg(feature = "serde")]
6pub mod serde;
7#[cfg(feature = "serde")]
8pub use serde::{from_value, to_value};
9
10/// XML language.
11#[derive(Debug, Clone)]
12#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
13pub struct XmlLanguage {}
14
15impl XmlLanguage {
16    /// Creates a new `XmlLanguage`.
17    pub fn new() -> Self {
18        Self {}
19    }
20}
21
22impl Default for XmlLanguage {
23    fn default() -> Self {
24        Self {}
25    }
26}
27
28impl Language for XmlLanguage {
29    const NAME: &'static str = "xml";
30    const CATEGORY: LanguageCategory = LanguageCategory::Markup;
31
32    type TokenType = crate::lexer::token_type::XmlTokenType;
33    type ElementType = crate::parser::element_type::XmlElementType;
34    type TypedRoot = crate::ast::XmlRoot;
35}