1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//! # Texlang: a TeX language interpreter.
//!
//! This crate implements a general purpose TeX language interpreter called Texlang.
//!
//! Most of the high level documentation is provided in the [Texcraft website](https://texcraft.dev),
//! including guided introductions to using Texlang to build TeX interpreters.
//! The documentation here is mostly for reference.

extern crate texcraft_stdext;

pub mod command;
pub mod error;
pub mod parse;
pub mod texmacro;
pub mod token;
pub mod types;
pub mod variable;
pub mod vm;

/// Module that re-exports all of the crate's traits.
///
/// This is useful for getting all of the traits in scope in a Rust module:
/// ```
/// use texlang::traits::*;
/// ```
pub mod traits {
    pub use super::parse::Parsable;
    pub use super::vm::ExpandedStream;
    pub use super::vm::HasComponent;
    pub use super::vm::HasDefaultBuiltInCommands;
    pub use super::vm::TexlangState;
    pub use super::vm::TokenStream;
}