limu 0.1.0

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

/// A token's type, Pele's T. The names are Pele's as they are, since two of them, END and
/// end, differ only in case.
#[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,
    acc_title,
    acc_title_value,
    acc_descr,
    acc_descr_value,
    acc_descr_multiline_value,
    SHAPE_DATA,
    CALLBACKNAME,
    CALLBACKARGS,
    MD_STR,
    STR,
    STYLE,
    DEFAULT,
    LINKSTYLE,
    INTERPOLATE,
    CLASSDEF,
    CLASS,
    HREF,
    CLICK,
    GRAPH,
    flow,
    connector,
    global,
    end,
    LINK_TARGET,
    NODIR,
    DIR,
    direction_tb,
    direction_bt,
    direction_rl,
    direction_lr,
    direction_td,
    LINK_ID,
    NUM,
    BRKT,
    STYLE_SEPARATOR,
    COLON,
    AMP,
    SEMI,
    COMMA,
    MULT,
    LINK,
    START_LINK,
    EDGE_TEXT,
    ELLIPSE_END,
    TEXT,
    ELLIPSE_START,
    STADIUMEND,
    STADIUMSTART,
    SUBROUTINEEND,
    SUBROUTINESTART,
    VERTEX_WITH_PROPS_START,
    TAGEND,
    CYLINDEREND,
    CYLINDERSTART,
    DOUBLECIRCLEEND,
    DOUBLECIRCLESTART,
    TRAPEND,
    INVTRAPEND,
    TRAPSTART,
    INVTRAPSTART,
    TAGSTART,
    UP,
    SEP,
    DOWN,
    COMMENT,
    NODE_STRING,
    MINUS,
    UNICODE_TEXT,
    PIPE,
    PE,
    PS,
    SQE,
    SQS,
    DIAMOND_STOP,
    DIAMOND_START,
    NEWLINE,
    SPACE,
    EOF,
}

/// The direction statements, in the order of their tokens.
pub(crate) const DIRECTION_TOKENS: [T; 5] = [
    T::direction_tb,
    T::direction_bt,
    T::direction_rl,
    T::direction_lr,
    T::direction_td,
];

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::EOF as usize + 1] = [
    "$end",
    "INVALID",
    "acc_title",
    "acc_title_value",
    "acc_descr",
    "acc_descr_value",
    "acc_descr_multiline_value",
    "SHAPE_DATA",
    "CALLBACKNAME",
    "CALLBACKARGS",
    "MD_STR",
    "STR",
    "STYLE",
    "DEFAULT",
    "LINKSTYLE",
    "INTERPOLATE",
    "CLASSDEF",
    "CLASS",
    "HREF",
    "CLICK",
    "GRAPH",
    "flow",
    "connector",
    "global",
    "end",
    "LINK_TARGET",
    "NODIR",
    "DIR",
    "direction_tb",
    "direction_bt",
    "direction_rl",
    "direction_lr",
    "direction_td",
    "LINK_ID",
    "NUM",
    "BRKT",
    "STYLE_SEPARATOR",
    "COLON",
    "AMP",
    "SEMI",
    "COMMA",
    "MULT",
    "LINK",
    "START_LINK",
    "EDGE_TEXT",
    "-)",
    "TEXT",
    "(-",
    "STADIUMEND",
    "STADIUMSTART",
    "SUBROUTINEEND",
    "SUBROUTINESTART",
    "VERTEX_WITH_PROPS_START",
    "TAGEND",
    "CYLINDEREND",
    "CYLINDERSTART",
    "DOUBLECIRCLEEND",
    "DOUBLECIRCLESTART",
    "TRAPEND",
    "INVTRAPEND",
    "TRAPSTART",
    "INVTRAPSTART",
    "TAGSTART",
    "UP",
    "SEP",
    "DOWN",
    "COMMENT",
    "NODE_STRING",
    "MINUS",
    "UNICODE_TEXT",
    "PIPE",
    "PE",
    "PS",
    "SQE",
    "SQS",
    "DIAMOND_STOP",
    "DIAMOND_START",
    "NEWLINE",
    "SPACE",
    "EOF",
];