#[allow(
non_camel_case_types,
clippy::upper_case_acronyms,
clippy::enum_variant_names
)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)]
#[repr(u8)]
pub(crate) enum T {
END,
ERROR,
title,
acc_title,
acc_title_value,
acc_descr,
acc_descr_value,
acc_descr_multiline_value,
direction_tb,
direction_bt,
direction_rl,
direction_lr,
NEWLINE,
EOF,
RD,
STRUCT_START,
STRUCT_STOP,
STYLE_SEPARATOR,
COLONSEP,
ID,
TEXT,
RISK,
VERIFYMTHD,
REQUIREMENT,
FUNCTIONAL_REQUIREMENT,
INTERFACE_REQUIREMENT,
PERFORMANCE_REQUIREMENT,
PHYSICAL_REQUIREMENT,
DESIGN_CONSTRAINT,
LOW_RISK,
MED_RISK,
HIGH_RISK,
VERIFY_ANALYSIS,
VERIFY_DEMONSTRATION,
VERIFY_INSPECTION,
VERIFY_TEST,
ELEMENT,
CONTAINS,
COPIES,
DERIVES,
SATISFIES,
VERIFIES,
REFINES,
TRACES,
TYPE,
DOCREF,
STYLE,
CLASSDEF,
CLASS,
ALPHA,
COLON,
SEMICOLON,
PERCENT,
MINUS,
BRKT,
END_ARROW_L,
END_ARROW_R,
LINE,
qString,
unqString,
COMMA,
}
pub(crate) const TOKEN_NAMES: [&str; 61] = [
"$end",
"INVALID",
"title",
"acc_title",
"acc_title_value",
"acc_descr",
"acc_descr_value",
"acc_descr_multiline_value",
"direction_tb",
"direction_bt",
"direction_rl",
"direction_lr",
"NEWLINE",
"EOF",
"RD",
"STRUCT_START",
"STRUCT_STOP",
"STYLE_SEPARATOR",
"COLONSEP",
"ID",
"TEXT",
"RISK",
"VERIFYMTHD",
"REQUIREMENT",
"FUNCTIONAL_REQUIREMENT",
"INTERFACE_REQUIREMENT",
"PERFORMANCE_REQUIREMENT",
"PHYSICAL_REQUIREMENT",
"DESIGN_CONSTRAINT",
"LOW_RISK",
"MED_RISK",
"HIGH_RISK",
"VERIFY_ANALYSIS",
"VERIFY_DEMONSTRATION",
"VERIFY_INSPECTION",
"VERIFY_TEST",
"ELEMENT",
"CONTAINS",
"COPIES",
"DERIVES",
"SATISFIES",
"VERIFIES",
"REFINES",
"TRACES",
"TYPE",
"DOCREF",
"STYLE",
"CLASSDEF",
"CLASS",
"ALPHA",
"COLON",
"SEMICOLON",
"PERCENT",
"MINUS",
"BRKT",
"END_ARROW_L",
"END_ARROW_R",
"LINE",
"qString",
"unqString",
"COMMA",
];
impl T {
pub(crate) fn name(self) -> &'static str {
TOKEN_NAMES[self as usize]
}
}
pub(crate) const LONGEST_KEYWORD: usize = 22;
pub(crate) fn keyword(lower: &str) -> Option<T> {
Some(match lower {
"requirementdiagram" => T::RD,
"id" => T::ID,
"text" => T::TEXT,
"risk" => T::RISK,
"verifymethod" => T::VERIFYMTHD,
"requirement" => T::REQUIREMENT,
"functionalrequirement" => T::FUNCTIONAL_REQUIREMENT,
"interfacerequirement" => T::INTERFACE_REQUIREMENT,
"performancerequirement" => T::PERFORMANCE_REQUIREMENT,
"physicalrequirement" => T::PHYSICAL_REQUIREMENT,
"designconstraint" => T::DESIGN_CONSTRAINT,
"low" => T::LOW_RISK,
"medium" => T::MED_RISK,
"high" => T::HIGH_RISK,
"analysis" => T::VERIFY_ANALYSIS,
"demonstration" => T::VERIFY_DEMONSTRATION,
"inspection" => T::VERIFY_INSPECTION,
"test" => T::VERIFY_TEST,
"element" => T::ELEMENT,
"contains" => T::CONTAINS,
"copies" => T::COPIES,
"derives" => T::DERIVES,
"satisfies" => T::SATISFIES,
"verifies" => T::VERIFIES,
"refines" => T::REFINES,
"traces" => T::TRACES,
"type" => T::TYPE,
"docref" => T::DOCREF,
"style" => T::STYLE,
"classdef" => T::CLASSDEF,
"class" => T::CLASS,
_ => return None,
})
}