Skip to main content

cure_engine/
lib.rs

1//! # cure-engine
2//!
3//! 语言无关的代码语义简化引擎。核心抽象:
4//!
5//! - [`Lang`]:语言适配层(结构 + 语义查询 + 构造);
6//! - [`Effect`]:副作用格,语义保守性的基石;
7//! - [`Edit`] / [`Rule`]:改写事务(提案 → 成本校验 → 原子应用);
8//! - [`simplify`]:fixed-point pass runner,成本单调下降保证收敛;
9//! - [`rules`]: 只依赖 `Lang` 的通用规则集(布尔、自赋值、常量条件、局部传播等)。
10//!
11//! 语言 crate(如 cure-java-ast)实现 [`Lang`] 并注册规则;本 crate 零外部依赖。
12
13pub mod analysis;
14pub use analysis::{subtree_metrics, TreeMetrics};
15pub mod cost;
16pub mod effect;
17pub mod kind;
18pub mod lang;
19pub mod pass;
20pub mod pattern;
21pub mod rule;
22pub mod rules;
23pub mod walk;
24
25pub use effect::Effect;
26pub use kind::{BinOp, LitRef, NodeKind, UnOp};
27pub use lang::{Lang, ReassocOutcome};
28pub use pass::{simplify, Config, Report, fold_root};
29pub use rule::{Edit, Rule, RewriteCtx};