Skip to main content

texform_transform/
lib.rs

1//! TeXForm transform crate: phase-oriented AST rewrite pipeline.
2
3pub(crate) use texform_core::ast;
4pub(crate) use texform_core::knowledge;
5pub(crate) use texform_core::parse;
6#[cfg(test)]
7pub(crate) use texform_core::serialize;
8
9pub mod config;
10pub mod context;
11mod engine;
12pub mod error;
13pub mod finalize_ast;
14pub mod flatten_groups;
15pub mod lower_attributes;
16pub mod report;
17pub mod rewrite;
18
19pub use config::{BuildConfig, NormalizeConfig, Profile, TransformConfig};
20pub use context::TransformContext;
21pub use error::{TransformBuildError, TransformError};
22pub use finalize_ast::{
23    FinalizeAstConfig, FinalizeAstReport, FinalizeAstStepReport, FinalizeAstStepReports,
24};
25pub use flatten_groups::{
26    FlattenGroupsActionCounts, FlattenGroupsConfig, FlattenGroupsGuardCounts, FlattenGroupsReport,
27};
28pub use lower_attributes::{
29    Attr, AttrValue, AttributeFormCounts, AttributeSet, AttributeStat, LowerAttributesConfig,
30    LowerAttributesReport, MathFontValue, SizeValue, StyleValue, TextFamily, TextSeries, TextShape,
31};
32pub use report::TransformReport;
33pub use rewrite::{
34    ContractViolation, NormalizationLevel, NormalizationLevelSet, PackageName, Plan as RewritePlan,
35    PlanBuildError, RewriteError, RewriteReport, RewriteRule, RewriteRuleStat,
36    RuleAvailabilityFailure, RuleConsumes, RuleEffect, RuleError, RuleFidelity, RuleKey, RuleMeta,
37    RuleProduces, RuleTarget, RuleTargetKey, RuleTargetKind, collect_eliminated_violations,
38};
39
40#[cfg(test)]
41pub(crate) fn parse_to_ast_for_test(
42    parse_ctx: &parse::ParseContext,
43    src: &str,
44    config: &parse::ParseConfig,
45) -> ast::Ast {
46    let document = parse_ctx
47        .parse(src, config)
48        .try_into_document()
49        .expect("test input should parse")
50        .0;
51    ast::Ast::from_syntax_root(&document.to_syntax())
52}