limu 0.1.0

A diagram layout engine. It reads Mermaid and leaves the drawing to your program.
Documentation
//! The tokens of a class diagram, as Pele's tokens.ts has them.

/// A token's type, Pele's T, with Pele's names as they are.
#[allow(
    non_camel_case_types,
    clippy::upper_case_acronyms,
    clippy::enum_variant_names
)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub(crate) enum T {
    END,
    ERROR,
    CLASS_DIAGRAM,
    NEWLINE,
    EOF,
    SQS,
    STR,
    SQE,
    DOT,
    GENERICTYPE,
    LABEL,
    acc_title,
    acc_title_value,
    acc_descr,
    acc_descr_value,
    acc_descr_multiline_value,
    STRUCT_START,
    STRUCT_STOP,
    NAMESPACE,
    STYLE_SEPARATOR,
    ANNOTATION_START,
    ANNOTATION_END,
    CLASS,
    MEMBER,
    NOTE_FOR,
    NOTE,
    CLASSDEF,
    ALPHA,
    COMMA,
    direction_tb,
    direction_bt,
    direction_rl,
    direction_lr,
    AGGREGATION,
    EXTENSION,
    COMPOSITION,
    DEPENDENCY,
    LOLLIPOP,
    LINE,
    DOTTED_LINE,
    CALLBACK,
    LINK,
    LINK_TARGET,
    CLICK,
    CALLBACK_NAME,
    CALLBACK_ARGS,
    HREF,
    STYLE,
    CSSCLASS,
    COLON,
    BRKT,
    PCT,
    MINUS,
    UNICODE_TEXT,
    BQUOTE_STR,
    EDGE_STATE,
    EOF_IN_STRUCT,
    OPEN_IN_STRUCT,
    PLUS,
    EQUALS,
    PUNCTUATION,
}

impl T {
    /// The token's name, as Jison's errors name it, Pele's TOKEN_NAMES.
    pub(crate) fn name(self) -> &'static str {
        TOKEN_NAMES[self as usize]
    }
}

const TOKEN_NAMES: [&str; T::PUNCTUATION as usize + 1] = [
    "$end",
    "INVALID",
    "CLASS_DIAGRAM",
    "NEWLINE",
    "EOF",
    "SQS",
    "STR",
    "SQE",
    "DOT",
    "GENERICTYPE",
    "LABEL",
    "acc_title",
    "acc_title_value",
    "acc_descr",
    "acc_descr_value",
    "acc_descr_multiline_value",
    "STRUCT_START",
    "STRUCT_STOP",
    "NAMESPACE",
    "STYLE_SEPARATOR",
    "ANNOTATION_START",
    "ANNOTATION_END",
    "CLASS",
    "MEMBER",
    "NOTE_FOR",
    "NOTE",
    "CLASSDEF",
    "ALPHA",
    "COMMA",
    "direction_tb",
    "direction_bt",
    "direction_rl",
    "direction_lr",
    "AGGREGATION",
    "EXTENSION",
    "COMPOSITION",
    "DEPENDENCY",
    "LOLLIPOP",
    "LINE",
    "DOTTED_LINE",
    "CALLBACK",
    "LINK",
    "LINK_TARGET",
    "CLICK",
    "CALLBACK_NAME",
    "CALLBACK_ARGS",
    "HREF",
    "STYLE",
    "CSSCLASS",
    "COLON",
    "BRKT",
    "PCT",
    "MINUS",
    "UNICODE_TEXT",
    "BQUOTE_STR",
    "EDGE_STATE",
    "EOF_IN_STRUCT",
    "OPEN_IN_STRUCT",
    "PLUS",
    "EQUALS",
    "PUNCTUATION",
];