1pub(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}