use simple_term_rewriter::term::syntax::{LanguageTerm, LanguageTermNode, TermFactory};
use super::lang::ArithOp;
pub fn zero(f: &mut TermFactory<ArithOp>) -> LanguageTerm<ArithOp> {
LanguageTermNode::build(ArithOp::Zero, vec![], f)
}
pub fn var(c: char, f: &mut TermFactory<ArithOp>) -> LanguageTerm<ArithOp> {
LanguageTermNode::build(ArithOp::Var(c), vec![], f)
}
pub fn add(
l: LanguageTerm<ArithOp>,
r: LanguageTerm<ArithOp>,
f: &mut TermFactory<ArithOp>,
) -> LanguageTerm<ArithOp> {
LanguageTermNode::build(ArithOp::Add, vec![l, r], f)
}
pub fn mul(
l: LanguageTerm<ArithOp>,
r: LanguageTerm<ArithOp>,
f: &mut TermFactory<ArithOp>,
) -> LanguageTerm<ArithOp> {
LanguageTermNode::build(ArithOp::Mul, vec![l, r], f)
}