use crate::stil;
#[derive(Clone, PartialEq, Serialize, Debug)]
pub enum STIL {
Root,
SourceFile(String),
Integer(i64),
Float(f64),
String(String),
Unknown,
ExtBlock,
Extension(String, String),
Version(u32, u32), Header,
Title(String),
Date(String),
Source(String),
History,
Annotation(String),
Environment(Option<String>),
InheritEnv(String),
FileRef(String, Option<(String,String,String)>), NameMaps(Option<String>),
NameMapsInherit(Option<String>, Option<String>), NameMapsPrefix(String),
NameMapsSeparator(String),
NameMapsScanCells,
NameMapsScanCell(Option<String>, Option<String>), NameMapsSignals,
NameMapsSignal(Option<String>, Option<String>), NameMapsSignalGroups(Option<String>), NameMapsSignalGroup(Option<String>, Option<String>), NameMapsVariables,
NameMapsVariable(Option<String>, Option<String>), NameMapsNames,
NameMapsName(Option<String>, Option<String>), Include(String, Option<String>),
Signals,
Signal(String, stil::SignalType), Termination(stil::Termination),
DefaultState(stil::State),
Base(stil::Base, String),
Alignment(stil::Alignment),
ScanIn(Option<u32>),
ScanOut(Option<u32>),
DataBitCount(u32),
SignalGroups(Option<String>),
SignalGroup(String),
SigRefExpr,
TimeExpr,
SIUnit(String),
EngPrefix(String),
Add,
Subtract,
Multiply,
Divide,
Parens,
NumberWithUnit,
PatternExec(Option<String>),
CategoryRef(String),
SelectorRef(String),
TimingRef(String),
DCapFilterRef(String),
DCapSetupRef(String),
PatternBurstRef(String),
DCapFilter(Option<String>),
TypeRef(String),
TransferModeRef(String),
FrameCountRef(u64),
VectorsPerFrameRef(u64),
VectorsPerSampleRef(u64),
DiscardOffsetRef(u64),
DiscardVectorsRef(u64),
DiscardFramesRef(u64),
DCapSetup(Option<String>),
PinsRef(String),
PatternBurst(String),
SignalGroupsRef(String),
MacroDefs(String),
Procedures(String),
ProceduresBlock(Option<String>),
ProceduresDef(String),
MacroDefsBlock(Option<String>),
MacroDef(String),
Shift,
WfcData(String),
ScanStructuresRef(String),
Start(String),
Stop(String),
Terminations,
TerminationItem,
PatList,
Pat(String),
Label(String),
Timing(Option<String>),
WaveformTable(String),
Period,
TaggedPeriod(String),
Inherit(String),
SubWaveforms,
SubWaveform,
Waveforms,
Waveform,
WFChar(String),
TaggedWFChar(String, String),
Event,
EventList(Vec<char>),
Spec(Option<String>),
Category(String),
SpecItem,
TypicalVar(String),
SpecVar(String),
SpecVarItem(stil::Selector),
Variable(String),
Selector(String),
SelectorItem(String, stil::Selector),
ScanStructures(Option<String>),
ScanChain(String),
ScanLength(u64),
ScanOutLength(u64),
ScanCells,
ScanMasterClock,
ScanSlaveClock,
ScanInversion(u8),
ScanInName(String),
ScanOutName(String),
Not,
Pattern(String),
TimeUnit,
Vector,
CyclizedData,
NonCyclizedData,
Repeat(u64),
WaveformFormat,
HexFormat(Option<String>),
DecFormat(Option<String>),
Data(String),
TimeValue(u64),
WaveformRef(String),
Condition,
Call(String),
Macro(String),
Loop(u64),
MatchLoop(Option<u64>),
Goto(String),
BreakPoint,
IDDQ,
StopStatement,
Comment(String),
UserKeywords,
UserFunctions,
Udb,
}
impl std::fmt::Display for STIL {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match &self {
_ => write!(f, "{}", format!("{:?}", self)),
}
}
}