#![allow(missing_docs)]
use tectonic_errors::prelude::*;
use crate::{
symbols::{DeclaresSymbols, SymbolTable},
FormatVersion,
};
pub trait HasPrimitive {
fn primitive(&self) -> Option<&'static str>;
}
pub mod dynamic;
pub mod simple;
pub fn initialize_enum_symbols(version: FormatVersion, symbols: &mut SymbolTable) -> Result<()> {
simple::AboveCodes::declare_symbols(symbols)?;
simple::CharacterConstants::declare_symbols(symbols)?;
simple::FiOrElseCodes::declare_symbols(symbols)?;
simple::GlueNodeSubtypes::declare_symbols(symbols)?;
simple::IfCodes::declare_symbols(symbols)?;
simple::InteractionModes::declare_symbols(symbols)?;
simple::KernNodeSubtypes::declare_symbols(symbols)?;
simple::MathFontSizes::declare_symbols(symbols)?;
simple::MathNodeSubtypes::declare_symbols(symbols)?;
simple::NodeTypes::declare_symbols(symbols)?;
simple::OpNoadSubtypes::declare_symbols(symbols)?;
simple::SetBoxDimenCodes::declare_symbols(symbols)?;
simple::ShorthandDefCodes::declare_symbols(symbols)?;
simple::SkipCodes::declare_symbols(symbols)?;
simple::StyleNodeSubtypes::declare_symbols(symbols)?;
simple::TopBotMarkCodes::declare_symbols(symbols)?;
simple::WhatsitNodeSubtypes::declare_symbols(symbols)?;
simple::XrayCodes::declare_symbols(symbols)?;
dynamic::Modes::build_resolver(version, symbols)?;
dynamic::MathNoadTypes::build_resolver(version, symbols)?;
dynamic::TabCrCodes::build_resolver(version, symbols)?;
Ok(())
}