diff options
| author | Greg Brown <gmb60@cam.ac.uk> | 2020-11-18 13:31:27 +0000 | 
|---|---|---|
| committer | Greg Brown <gmb60@cam.ac.uk> | 2020-11-18 13:31:27 +0000 | 
| commit | 0141e8e8c7f3e295d57990fdce6019e2d777aed0 (patch) | |
| tree | a98afe8bd8d8cfad984a22e2f308501b27dcb416 /src/ast/mod.rs | |
| parent | 579875e0eae2866a246fdadf598b31ea50aa1da4 (diff) | |
Convert concrete to abstract syntax tree
Diffstat (limited to 'src/ast/mod.rs')
| -rw-r--r-- | src/ast/mod.rs | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/src/ast/mod.rs b/src/ast/mod.rs new file mode 100644 index 0000000..1fa7d23 --- /dev/null +++ b/src/ast/mod.rs @@ -0,0 +1,15 @@ +pub mod convert; + +type Ident = String; + +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum Term { +    Epsilon, +    Bottom, +    Literal(String), +    Cat(Box<Term>, Box<Term>), +    Alt(Box<Term>, Box<Term>), +    Fix(Box<Term>), // Uses de Bruijn indices +    Variable(usize), +    Call(Ident, Vec<Term>), +} | 
