From 2970520a9592b5c6d45291f54073552a474b71b4 Mon Sep 17 00:00:00 2001 From: Cody Date: Thu, 30 Mar 2023 02:44:54 -0500 Subject: Restructure --- src/lexer.rs | 153 ----------------------------------------------------------- 1 file changed, 153 deletions(-) delete mode 100644 src/lexer.rs (limited to 'src/lexer.rs') diff --git a/src/lexer.rs b/src/lexer.rs deleted file mode 100644 index 8631eef..0000000 --- a/src/lexer.rs +++ /dev/null @@ -1,153 +0,0 @@ -#![allow(dead_code)] - -use thiserror::Error; - -#[derive(Debug, Error)] -pub enum LexerError { - #[error("Unexpected token")] - UnexpectedToken, -} - -#[derive(Debug, Clone, Eq, PartialEq)] -pub enum TokenType { - // Meta - DocComment, - Comment, - - // Brackets - OpeningParen, // ( - ClosingParen, // ) - OpeningBracket, // [ - ClosingBracket, // ] - OpeningBrace, // { - ClosingBrace, // } - - // Operators - Plus, // + - PlusPlus, // ++ - Minus, // - - Star, // * - StarStar, // ** - Slash, // / - Perc, // % - Tilde, // ~ - - PlusEq, // += - PlusPlusEq, // ++= - MinusEq, // -= - StarEq, // *= - StarStarEq, // **= - SlashEq, // /= - PercEq, // %= - - Amp, // & - AmpAmp, // && - Pipe, // | - PipePipe, // || - - Eq, // = - EqEq, // == - Bang, // ! - BangBang, // !! - BangEq, // != - - Lt, // < - LtLt, // << - LtEq, // <= - Gt, // > - GtGt, // >> - GtEq, // >= - - Comma, - - Question, // ? - QuestionDot, // ?. - QuestionQuestion, // ?? - Dot, // . - DotDot, // .. - - Colon, // : - ColonColon, // :: - SemiColon, // ; - - Arrow, // -> - - // Keywords - Val, - Var, - - Fn, - - If, - Else, - - While, - For, - In, - - Loop, - Break, - Continue, - - As, - - // Misc - Literal(Literal), -} - -#[derive(Debug, Clone, Eq, PartialEq)] -pub enum Literal { - Numeric, - Boolean, - Character, - String, - Regex, -} - -#[derive(Debug, Default)] -pub struct Location { - row: u32, - column: u32, -} - -#[derive(Debug)] -pub struct Token<'a> { - pub tt: TokenType, - pub lexeme: &'a str, - - start: Location, - end: Location, -} - -pub struct Lexer<'a> { - source: &'a [u8], - - start: Location, - end: Location, -} - -impl<'a> Lexer<'a> { - fn new(source: &'a str) -> Self { - Self { - source: source.as_bytes(), - start: Default::default(), - end: Default::default(), - } - } -} - -impl<'a> Iterator for Lexer<'a> { - type Item = Token<'a>; - - fn next(&mut self) -> Option { - unimplemented!() - } -} - -#[cfg(test)] -mod tests { - #[test] - fn basic_test_a() { - // - } -} -- cgit v1.2.3