aboutsummaryrefslogtreecommitdiff
path: root/src/lisp/lex.rs
diff options
context:
space:
mode:
authorAkshay <[email protected]>2021-03-20 16:04:59 +0000
committerAkshay <[email protected]>2021-03-20 16:04:59 +0000
commit158457c18805bec4a0df223691bea47032c13336 (patch)
treee33a8b29fa1af4238fe10657ca9bdfc24990b4d3 /src/lisp/lex.rs
parent07432dabd3fbc7fcaaec01d50f4036868dca88dd (diff)
begin work on parser
Diffstat (limited to 'src/lisp/lex.rs')
-rw-r--r--src/lisp/lex.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/lisp/lex.rs b/src/lisp/lex.rs
index a1bea5f..3b1389d 100644
--- a/src/lisp/lex.rs
+++ b/src/lisp/lex.rs
@@ -6,13 +6,12 @@ use super::error::LispError;
6pub enum Token<'a> { 6pub enum Token<'a> {
7 LeftParen, 7 LeftParen,
8 RightParen, 8 RightParen,
9 Comment(&'a str),
10 Float(&'a str), 9 Float(&'a str),
11 Integer(&'a str), 10 Integer(&'a str),
12 Char(&'a str), 11 // Char(&'a str),
13 String(&'a str), 12 String(&'a str),
14 Name(&'a str), 13 Name(&'a str),
15 Keyword(&'a str), 14 // Keyword(&'a str),
16 BackQuote, 15 BackQuote,
17 Comma, 16 Comma,
18 CommaAt, 17 CommaAt,
@@ -25,13 +24,12 @@ impl<'a> fmt::Display for Token<'a> {
25 match self { 24 match self {
26 Token::LeftParen => write!(f, "("), 25 Token::LeftParen => write!(f, "("),
27 Token::RightParen => write!(f, ")"), 26 Token::RightParen => write!(f, ")"),
28 Token::Comment(_) => write!(f, "comment"),
29 Token::Float(_) => write!(f, "float"), 27 Token::Float(_) => write!(f, "float"),
30 Token::Integer(_) => write!(f, "integer"), 28 Token::Integer(_) => write!(f, "integer"),
31 Token::Char(_) => write!(f, "char"), 29 // Token::Char(_) => write!(f, "char"),
32 Token::String(_) => write!(f, "string"), 30 Token::String(_) => write!(f, "string"),
33 Token::Name(_) => write!(f, "name"), 31 Token::Name(_) => write!(f, "name"),
34 Token::Keyword(_) => write!(f, "keyword"), 32 // Token::Keyword(_) => write!(f, "keyword"),
35 Token::BackQuote => write!(f, "`"), 33 Token::BackQuote => write!(f, "`"),
36 Token::Comma => write!(f, ","), 34 Token::Comma => write!(f, ","),
37 Token::CommaAt => write!(f, ",@"), 35 Token::CommaAt => write!(f, ",@"),
@@ -48,7 +46,7 @@ pub struct Span {
48} 46}
49 47
50impl Span { 48impl Span {
51 fn empty(pos: u32) -> Self { 49 pub fn empty(pos: u32) -> Self {
52 Self { 50 Self {
53 low: pos, 51 low: pos,
54 high: pos, 52 high: pos,
@@ -299,5 +297,7 @@ mod tests {
299 297
300 assert_eq!(tokens("; foo"), []); 298 assert_eq!(tokens("; foo"), []);
301 assert_eq!(tokens("1; foo"), [(sp(0, 1), Token::Integer("1"))]); 299 assert_eq!(tokens("1; foo"), [(sp(0, 1), Token::Integer("1"))]);
300 assert_eq!(tokens(">="), [(sp(0, 2), Token::Name(">="))]);
301 assert_eq!(tokens("&&"), [(sp(0, 2), Token::Name("&&"))]);
302 } 302 }
303} 303}