29 lines
739 B
Rust
29 lines
739 B
Rust
|
|
use crate::{boolean_algebra, truthtable};
|
|
|
|
use super::graphvizable::Graphvizable;
|
|
|
|
pub enum Pair<'a> {
|
|
BAPair(pest::iterators::Pair<'a, boolean_algebra::parser::BARule>),
|
|
TTPair(pest::iterators::Pair<'a, truthtable::parser::TTRule>),
|
|
}
|
|
|
|
impl <'a>Graphvizable for Pair<'a> {
|
|
fn graphviz_diagram(&self) -> String {
|
|
match &self {
|
|
Pair::BAPair(pair) => pair.graphviz_diagram(),
|
|
Pair::TTPair(pair) => pair.graphviz_diagram()
|
|
}
|
|
}
|
|
|
|
fn print_graphviz_diagram(&self) {
|
|
match &self {
|
|
Pair::BAPair(pair) => pair.print_graphviz_diagram(),
|
|
Pair::TTPair(pair) => pair.print_graphviz_diagram()
|
|
}
|
|
}
|
|
}
|
|
|
|
pub trait Parser {
|
|
fn parse(input: &mut String) -> Pair;
|
|
} |