diff --git a/doc/uml/lib/class.puml b/doc/uml/lib/class.puml index 71743c4..67cd609 100644 --- a/doc/uml/lib/class.puml +++ b/doc/uml/lib/class.puml @@ -12,6 +12,10 @@ package nom { interface Parser } +package fasteval { + enum Instruction +} + package parser { interface TokenParser interface Token { @@ -29,7 +33,7 @@ package parser { } struct VariableChange { +name: char, - +change: String + +change: Instruction -parser<'a, I, C: Into + Clone>(variables: &'a [C]): impl TokenParser } struct Loop { @@ -90,9 +94,12 @@ package parser { package compiler { struct Context { - result: Vec - variables: HashMap - ? + +result: Vec + +variables: HashMap + +instrument: Instruction + +slopes: HashMap + +current_length(&self): f64 + +render(&self, n: Option): Vec } } @@ -109,5 +116,7 @@ parser.TokenParser --|> nomparser_locatedspan: Output = Self, Error = nom::Err parser.TokenParser: for any T parser.Slope --> parser.VariableChange parser.Token --> compiler.Context +VariableChange --> Instruction +Context --> Instruction @enduml \ No newline at end of file