79fda16788 
					 
					
						
						
							
							cl 0.0.2: MAJOR ERGONOMIC BOOST  
						
						... 
						
						
						
						Broke frontend into its own library, "cl-frontend"
- Frontend is pretty :D
- Included sample fibonacci implementation
Deprecated conlang::ast::Visitor in favor of bespoke traits
- Rust traits are super cool.
- The Interpreter is currently undergoing a major rewrite
Added preliminary type-path support to the parser
- Currently incomplete: type paths must end in Never..?
Pretty printer is now even prettier
- conlang::ast now exports all relevant AST nodes, since there are no namespace collisions any more 
						
						
					 
					
						2024-01-04 02:18:09 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						9b7cf9c017 
					 
					
						
						
							
							lexer: Add :: and #! tokens  
						
						
						
						
					 
					
						2023-10-30 19:17:03 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						c3e02d21ad 
					 
					
						
						
							
							sample-code: Add some sample Conlang programs :D  
						
						
						
						
					 
					
						2023-10-30 00:23:43 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						c1c834701a 
					 
					
						
						
							
							parser: Mockup type-expression syntax  
						
						... 
						
						
						
						- Allow `name: Type` notation for parameters
- Allow `fn x() -> RetVal` notation for return values
- TODO: Create syntax for type-expressions/paths 
						
						
					 
					
						2023-10-30 00:07:27 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						374017d5e3 
					 
					
						
						
							
							examples/interpret: Call main if loading from file  
						
						
						
						
					 
					
						2023-10-29 23:48:38 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						ee5dabb4f3 
					 
					
						
						
							
							Conlang: Implement functions 1.0 ( Resolves   #12 )  
						
						... 
						
						
						
						- [x] Call syntax
- [x] Function declaration syntax
TODO:
- [ ] Any form of type checking
- [ ] Static variable resolution
- [ ] Closures, etc. 
						
						
					 
					
						2023-10-29 23:47:00 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						f3306e7ba4 
					 
					
						
						
							
							examples/format: Rename from parse_input  
						
						
						
						
					 
					
						2023-10-29 21:10:09 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						9a6eb6b0f1 
					 
					
						
						
							
							examples/interpret: Improve the repl's UX somewhat  
						
						
						
						
					 
					
						2023-10-29 01:14:36 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						8fe89e6297 
					 
					
						
						
							
							conlang: Variable binding and cleanup  
						
						... 
						
						
						
						ast: Separate concerns, and remove Walk
interpreter: implement variable binding 
						
						
					 
					
						2023-10-29 01:13:48 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						35d214c9f6 
					 
					
						
						
							
							ast: Remove vestigial "ignore" in Expr  
						
						
						
						
					 
					
						2023-10-27 00:19:19 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						ac540ebd22 
					 
					
						
						
							
							parser: parse let statements  
						
						... 
						
						
						
						- TODO: Type expressions
token: Add `mut` keyword 
						
						
					 
					
						2023-10-27 00:18:02 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						f3aad36f32 
					 
					
						
						
							
							examples/interpret: Multi-line input support  
						
						
						
						
					 
					
						2023-10-26 22:33:31 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						b906775006 
					 
					
						
						
							
							dummy.cl: Remove "shebang comment" (lmao)  
						
						
						
						
					 
					
						2023-10-26 22:14:12 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						e22b1b7bfd 
					 
					
						
						
							
							examples/interpret: Misc cleanup  
						
						
						
						
					 
					
						2023-10-26 22:13:48 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						aead97e357 
					 
					
						
						
							
							interpreter: Implement ranges and for loops  
						
						
						
						
					 
					
						2023-10-26 21:51:18 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						55070bcc41 
					 
					
						
						
							
							ast: Improve documentation linking  
						
						
						
						
					 
					
						2023-10-26 17:56:02 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						ed6917070c 
					 
					
						
						
							
							interpreter: fix comment  
						
						
						
						
					 
					
						2023-10-26 14:51:13 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						15a3d265df 
					 
					
						
						
							
							interpreter: Prototype interpreter  
						
						... 
						
						
						
						TODO: Type-checking, floats, variables & scope
TODO Later: A bytecode interpreter 
						
						
					 
					
						2023-10-26 14:48:44 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						9ab9583a5b 
					 
					
						
						
							
							parser: Reorder functions, add doc comments  
						
						
						
						
					 
					
						2023-10-26 14:41:59 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						0445598ae8 
					 
					
						
						
							
							grammar: Remove Ignore expression to avoid parsing ambiguity :'(  
						
						
						
						
					 
					
						2023-10-26 14:36:55 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						b1f90ca4e9 
					 
					
						
						
							
							conlang: Add statements  
						
						... 
						
						
						
						TODO: Parse `let` statements 
						
						
					 
					
						2023-10-26 14:33:56 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						d1b5c48aac 
					 
					
						
						
							
							constr/lerox: remove  
						
						
						
						
					 
					
						2023-10-26 12:23:26 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						5c4c8bcb80 
					 
					
						
						
							
							lexer: Consume invalid characters  
						
						
						
						
					 
					
						2023-10-25 19:28:54 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						32bde2f749 
					 
					
						
						
							
							Minor documentation fixes  
						
						
						
						
					 
					
						2023-10-23 23:43:11 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						0e1beca43d 
					 
					
						
						
							
							Cargos.toml: wrong key ("publish")  
						
						
						
						
					 
					
						2023-10-23 23:42:39 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						9196d3b1da 
					 
					
						
						
							
							Add package metadata  
						
						
						
						
					 
					
						2023-10-23 21:38:06 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						1b14a43129 
					 
					
						
						
							
							Add LICENSE  
						
						
						
						
					 
					
						2023-10-23 21:05:51 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						a339dfd549 
					 
					
						
						
							
							dummy.cl: Use unicode escape  🦈  
						
						
						
						
					 
					
						2023-10-23 21:02:45 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						0e917837c0 
					 
					
						
						
							
							identify_tokens: Use Display on token Data  
						
						
						
						
					 
					
						2023-10-23 21:02:09 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						8b1a1534f3 
					 
					
						
						
							
							docs: Improve and update documentation  
						
						
						
						
					 
					
						2023-10-23 21:01:32 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						c43ecf00d1 
					 
					
						
						
							
							token::token_data::Data: Renamed from token::TokenData  
						
						... 
						
						
						
						& Moved into its own module
+ Added token::preamble; common imports when working with Token 
						
						
					 
					
						2023-10-23 19:43:16 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						2d1b6d82db 
					 
					
						
						
							
							Update readme  
						
						
						
						
					 
					
						2023-10-22 18:41:10 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						ccfddcc09a 
					 
					
						
						
							
							Conlang: Add range operators  
						
						... 
						
						
						
						TODO: Limit range operators to at most 2 operands 
						
						
					 
					
						2023-10-22 18:30:00 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						b5abd2bff1 
					 
					
						
						
							
							Lexer rewrite:  
						
						... 
						
						
						
						- Scan the input string *linearly*, without backtracking
  - Peek at most one character (unicode code-point) ahead
- Store data (unescaped string literals and chars, identifiers, integers, floats) inside Token
  - This unfortunately makes tokens non-Copy
- Refactor Parser to accommodate these changes
  - On the bright side, Parser no longer needs a reference to the text!
- Write a new set of lexer tests
  - TODO: write a new set of token tests using tokendata
Every day, we get closer to parsing `dummy.cl`! 
						
						
					 
					
						2023-10-22 18:28:20 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						feb5cc5dd0 
					 
					
						
						
							
							AST: Refactor binary operations, fix Walk trait  
						
						... 
						
						
						
						- Unified math operations into a single self-referential enum
- Walk now visits the children of a node, rather than the node itself
  - The old behavior was super confusing, and led to numerous stack overflows. 
						
						
					 
					
						2023-10-21 12:24:52 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						4ec91ff806 
					 
					
						
						
							
							constr: switch to Rust-style unicode parsing  
						
						
						
						
					 
					
						2023-10-21 12:20:22 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						1e5f7149d9 
					 
					
						
						
							
							Token: Add range operators, rename for consistency  
						
						
						
						
					 
					
						2023-10-20 17:09:14 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						34525ec77a 
					 
					
						
						
							
							lexer: Only allow lines up to 4GB in size. Saves 8 bytes per token  
						
						
						
						
					 
					
						2023-10-20 15:34:54 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						a26a01fc17 
					 
					
						
						
							
							constr: Misuse iterators to parse tokens  
						
						
						
						
					 
					
						2023-10-20 15:33:02 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						7f7393d2c6 
					 
					
						
						
							
							conlang: Grammatical cleanup; merge control flow expressions  
						
						
						
						
					 
					
						2023-10-19 14:40:03 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						331141356a 
					 
					
						
						
							
							tests: Move module into file  
						
						
						
						
					 
					
						2023-10-17 13:39:05 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						73f7337fd5 
					 
					
						
						
							
							pretty_printer: Move module into file  
						
						
						
						
					 
					
						2023-10-17 13:38:30 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						59617d805a 
					 
					
						
						
							
							parser: Move module into file  
						
						
						
						
					 
					
						2023-10-17 13:36:21 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						3d0698ba60 
					 
					
						
						
							
							lexer: Move module into file  
						
						
						
						
					 
					
						2023-10-17 13:33:07 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						b1d9e4fd03 
					 
					
						
						
							
							ast: Move module into file  
						
						
						
						
					 
					
						2023-10-17 13:30:16 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						5d9c45c26a 
					 
					
						
						
							
							token: Move module into file  
						
						
						
						
					 
					
						2023-10-17 13:23:34 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						71f43d852a 
					 
					
						
						
							
							readme.md: Clarify goals  
						
						
						
						
					 
					
						2023-10-16 23:01:09 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						d6a80e4961 
					 
					
						
						
							
							dummy.cl: Update to include while expressions  
						
						
						
						
					 
					
						2023-10-16 22:55:07 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						b707bcef81 
					 
					
						
						
							
							examples: Add parse_input REPL for fun!  
						
						
						
						
					 
					
						2023-10-16 22:51:59 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						8d1107cb57 
					 
					
						
						
							
							Conlang: Add a pretty printer for the AST  
						
						
						
						
					 
					
						2023-10-16 22:51:07 -05:00