diff options
author | NerdyPepper <[email protected]> | 2019-03-29 14:20:21 +0000 |
---|---|---|
committer | NerdyPepper <[email protected]> | 2019-03-29 14:20:21 +0000 |
commit | 8a61f0c0712b4553622379aa7c36a710a5701542 (patch) | |
tree | 786f16715ad6a85622ed9cbf4a637de4a216fafc | |
parent | 0141442b04bc1a2c78e8d179b972976adf360275 (diff) |
handle some more errors
-rw-r--r-- | src/lex/mod.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lex/mod.rs b/src/lex/mod.rs index c0c4f84..39538ca 100644 --- a/src/lex/mod.rs +++ b/src/lex/mod.rs | |||
@@ -120,6 +120,13 @@ pub fn lexer(input: &str) -> Result<Vec<Token>, CalcError> { | |||
120 | for letter in input.chars() { | 120 | for letter in input.chars() { |
121 | match letter { | 121 | match letter { |
122 | '0'...'9' | '.' => { | 122 | '0'...'9' | '.' => { |
123 | if char_vec.len() > 0 { | ||
124 | if let Some(_) = functions.get(&char_vec[..]) { | ||
125 | return Err(CalcError::Syntax(format!("Function '{}' expected parentheses", char_vec))) | ||
126 | } else { | ||
127 | return Err(CalcError::Syntax(format!("Unexpected character '{}'", char_vec))) | ||
128 | } | ||
129 | } | ||
123 | num_vec.push(letter); | 130 | num_vec.push(letter); |
124 | last_char_is_op = false; | 131 | last_char_is_op = false; |
125 | }, | 132 | }, |