hey it can calculate 4 again xP
This commit is contained in:
		
					parent
					
						
							
								e769b891ab
							
						
					
				
			
			
				commit
				
					
						d253497b3e
					
				
			
		
					 11 changed files with 137 additions and 95 deletions
				
			
		
							
								
								
									
										1
									
								
								src/language_frontend/lexer/mod.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/language_frontend/lexer/mod.rs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| pub mod tokens; | ||||
							
								
								
									
										55
									
								
								src/language_frontend/lexer/tokens.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								src/language_frontend/lexer/tokens.rs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,55 @@ | |||
| use logos::{Lexer, Logos}; | ||||
| 
 | ||||
| #[derive(Logos, Debug, Clone, PartialEq)] | ||||
| #[logos(skip r"[ \t\r\n\f]+")] // Skips whitespace
 | ||||
| pub enum Token<'src> { | ||||
|     #[token("false", |_| false)] | ||||
|     #[token("true", |_| true)] | ||||
|     Bool(bool), | ||||
| 
 | ||||
|     #[token("+")] | ||||
|     Add, | ||||
| 
 | ||||
|     #[token("-")] | ||||
|     Substract, | ||||
| 
 | ||||
|     #[token("*")] | ||||
|     Multiply, | ||||
| 
 | ||||
|     #[token("/")] | ||||
|     Divide, | ||||
| 
 | ||||
|     #[token("=")] | ||||
|     Equals, | ||||
| 
 | ||||
|     #[token(":")] | ||||
|     Colon, | ||||
| 
 | ||||
|     #[token("(")] | ||||
|     ParenBegin, | ||||
| 
 | ||||
|     #[token(")")] | ||||
|     ParenEnd, | ||||
| 
 | ||||
|     #[token("{")] | ||||
|     BraceBegin, | ||||
| 
 | ||||
|     #[token("}")] | ||||
|     BraceEnd, | ||||
| 
 | ||||
|     #[regex("[0-9]+", |lex| lex.slice().parse::<i64>().unwrap())] | ||||
|     Integer(i64), | ||||
| 
 | ||||
|     #[regex(r"[_a-zA-Z][_0-9a-zA-Z]*")] | ||||
|     Ident(&'src str), | ||||
| 
 | ||||
|     #[regex(r#""([^"\\\x00-\x1F]|\\(["\\bnfrt/]|u[a-fA-F0-9]{4}))*""#, |lex| lex.slice().to_owned())] | ||||
|     String(String), | ||||
| 
 | ||||
|     #[token("class")] | ||||
|     #[token("fun")] | ||||
|     #[token("var")] | ||||
|     #[token("if")] | ||||
|     #[token("else")] | ||||
|     Keyword(&'src str), | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue