[lexer] Laying groundwork for lexing numbers...
This commit is contained in:
		
							parent
							
								
									7b6259977f
								
							
						
					
					
						commit
						aa4de7d4bd
					
				
					 2 changed files with 47 additions and 0 deletions
				
			
		|  | @ -7,9 +7,11 @@ use token::Token; | |||
| 
 | ||||
| mod begin; | ||||
| mod hash; | ||||
| mod number; | ||||
| mod id; | ||||
| 
 | ||||
| pub use self::begin::Begin; | ||||
| pub use self::number::BeginNumber; | ||||
| 
 | ||||
| #[derive(Debug)] | ||||
| pub enum StateResult { | ||||
|  |  | |||
							
								
								
									
										45
									
								
								lexer/src/states/number.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								lexer/src/states/number.rs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,45 @@ | |||
| /* lexer/src/states/number.rs
 | ||||
|  * Eryn Wells <eryn@erynwells.me> | ||||
|  */ | ||||
| 
 | ||||
| use super::{State, StateResult, Token}; | ||||
| 
 | ||||
| #[derive(Debug, Eq, PartialEq)] | ||||
| pub enum Base { | ||||
|     Bin = 2, | ||||
|     Oct = 8, | ||||
|     Dec = 10, | ||||
|     Hex = 16 | ||||
| } | ||||
| 
 | ||||
| #[derive(Debug)] | ||||
| pub struct Builder { | ||||
|     base: Base | ||||
| } | ||||
| 
 | ||||
| #[derive(Debug)] | ||||
| pub struct BeginNumber(Builder); | ||||
| 
 | ||||
| impl Builder { | ||||
|     pub fn new() -> Builder { | ||||
|         Builder { base: Base::Dec } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl BeginNumber { | ||||
|     pub fn new() -> BeginNumber { | ||||
|         BeginNumber(Builder::new()) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl State for BeginNumber { | ||||
|     fn lex(&mut self, c: char) -> StateResult { | ||||
|         // TODO: Implement.
 | ||||
|         StateResult::fail("blah") | ||||
|     } | ||||
| 
 | ||||
|     fn none(&mut self) -> Result<Option<Token>, String> { | ||||
|         // TODO: Implement.
 | ||||
|         Err("blah".to_string()) | ||||
|     } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue