//! Defines input for code generation process.
+#[cfg(not(feature = "in-rust-tree"))]
pub(crate) struct KindsSrc<'a> {
pub(crate) punct: &'a [(&'a str, &'a str)],
pub(crate) keywords: &'a [&'a str],
pub(crate) nodes: &'a [&'a str],
}
+#[cfg(not(feature = "in-rust-tree"))]
pub(crate) const KINDS_SRC: KindsSrc<'_> = KindsSrc {
punct: &[
(";", "SEMICOLON"),
],
};
+#[cfg(not(feature = "in-rust-tree"))]
#[derive(Default, Debug)]
pub(crate) struct AstSrc {
pub(crate) tokens: Vec<String>,
pub(crate) enums: Vec<AstEnumSrc>,
}
+#[cfg(not(feature = "in-rust-tree"))]
#[derive(Debug)]
pub(crate) struct AstNodeSrc {
pub(crate) doc: Vec<String>,
pub(crate) fields: Vec<Field>,
}
+#[cfg(not(feature = "in-rust-tree"))]
#[derive(Debug, Eq, PartialEq)]
pub(crate) enum Field {
Token(String),
Node { name: String, ty: String, cardinality: Cardinality },
}
+#[cfg(not(feature = "in-rust-tree"))]
#[derive(Debug, Eq, PartialEq)]
pub(crate) enum Cardinality {
Optional,
Many,
}
+#[cfg(not(feature = "in-rust-tree"))]
#[derive(Debug)]
pub(crate) struct AstEnumSrc {
pub(crate) doc: Vec<String>,