feat(tazjin/rlox): Bootstrap recursive-descent parser for Lox
... mostly some AST boilerplate and a first top-level rule, plus boilerplate similar to that set up in the Scanner. Change-Id: I605d1de23c47a3b3702ab4f62cd3371bc3988c7d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2194 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
This commit is contained in:
		
							parent
							
								
									754edb4616
								
							
						
					
					
						commit
						349583d5a9
					
				
					 3 changed files with 107 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
use crate::errors::{Error, ErrorKind};
 | 
			
		||||
 | 
			
		||||
#[derive(Debug)]
 | 
			
		||||
#[derive(Debug, PartialEq)]
 | 
			
		||||
pub enum TokenKind {
 | 
			
		||||
    // Single-character tokens.
 | 
			
		||||
    LeftParen,
 | 
			
		||||
| 
						 | 
				
			
			@ -54,10 +54,9 @@ pub enum TokenKind {
 | 
			
		|||
 | 
			
		||||
#[derive(Debug)]
 | 
			
		||||
pub struct Token<'a> {
 | 
			
		||||
    kind: TokenKind,
 | 
			
		||||
    lexeme: &'a [char],
 | 
			
		||||
    // literal: Object, // TODO(tazjin): Uhh?
 | 
			
		||||
    line: usize,
 | 
			
		||||
    pub kind: TokenKind,
 | 
			
		||||
    pub lexeme: &'a [char],
 | 
			
		||||
    pub line: usize,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct Scanner<'a> {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue