diff options
| author | Edvard Thörnros <edvard.thornros@gmail.com> | 2021-01-11 15:33:02 +0100 |
|---|---|---|
| committer | Edvard Thörnros <edvard.thornros@gmail.com> | 2021-01-11 15:33:13 +0100 |
| commit | 0400311b2387b16b0fbd53a086634937cfc33ebc (patch) | |
| tree | dfe8131eb6ccd6573f2d6c8c95111805c7dc71a3 /src/compiler.rs | |
| parent | 5ff6d5a75020b148a3af130d9bb90ef60618efc2 (diff) | |
| download | sylt-0400311b2387b16b0fbd53a086634937cfc33ebc.tar.gz | |
Strings
Diffstat (limited to 'src/compiler.rs')
| -rw-r--r-- | src/compiler.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/compiler.rs b/src/compiler.rs index 94bc0cf..15d92fd 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -53,6 +53,7 @@ enum Type { Int, Float, Bool, + String, } impl TryFrom<&str> for Type { @@ -63,6 +64,7 @@ impl TryFrom<&str> for Type { "int" => Ok(Type::Int), "float" => Ok(Type::Float), "bool" => Ok(Type::Bool), + "str" => Ok(Type::String), _ => Err(()), } } @@ -188,6 +190,7 @@ impl Compiler { Token::Float(_) => self.value(block), Token::Int(_) => self.value(block), Token::Bool(_) => self.value(block), + Token::String(_) => self.value(block), Token::Not => self.unary(block), @@ -222,6 +225,7 @@ impl Compiler { Token::Float(f) => { Value::Float(f) }, Token::Int(i) => { Value::Int(i) } Token::Bool(b) => { Value::Bool(b) } + Token::String(s) => { Value::String(s.clone()) } _ => { error!(self, "Cannot parse value."); Value::Bool(false) } }; block.add(Op::Constant(value), self.line()); |
