From 7e505dd88e2ba9b27e0bcbfff633b9b403e9e7e6 Mon Sep 17 00:00:00 2001 From: greg Date: Wed, 6 Sep 2017 09:42:29 -0700 Subject: [PATCH] Stuff --- src/schala_lang/parsing.rs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/schala_lang/parsing.rs b/src/schala_lang/parsing.rs index d72eb60..1984c94 100644 --- a/src/schala_lang/parsing.rs +++ b/src/schala_lang/parsing.rs @@ -56,7 +56,6 @@ pub fn tokenize(input: &str) -> Result, TokenError> { while let Some((idx, c)) = input.next() { let cur_tok_type = match c { - c if char::is_whitespace(c) && c != '\n' => continue, '#' => { if let Some(&(_, '{')) = input.peek() { } else { @@ -68,14 +67,17 @@ pub fn tokenize(input: &str) -> Result, TokenError> { } continue; }, + c if char::is_whitespace(c) && c != '\n' => continue, '\n' => Newline, ';' => Semicolon, - ':' => Colon, ',' => Comma, '_' => Underscore, '.' => Period, + ':' => Colon, ',' => Comma, '.' => Period, '(' => LParen, ')' => RParen, '{' => LCurlyBrace, '}' => RCurlyBrace, '<' => LAngleBracket, '>' => RAngleBracket, '[' => LSquareBracket, ']' => RSquareBracket, + '"' => handle_quote(&mut input), c if is_digit(&c) => handle_digit(c, &mut input), - _ => RSquareBracket, + c @ '_' | c if c.is_alphabetic() => handle_alphabetic(c, &mut input), + c => handle_operator(c, &mut input), }; tokens.push(Token { token_type: cur_tok_type, offset: idx }); @@ -100,6 +102,19 @@ fn handle_digit(c: char, input: &mut CharIter) -> TokenType { } } +fn handle_quote(input: &mut CharIter) -> TokenType { + unimplemented!() +} + +fn handle_alphabetic(c: char, input: &mut CharIter) -> TokenType { + unimplemented!() +} + +fn handle_operator(c: char, input: &mut CharIter) -> TokenType { + unimplemented!() +} + + /* Schala EBNF grammar