8ff17fd475 
					 
					
						
						
							
							cl-ast: Add syntax support for generics  
						
						 
						
						
						
						
					 
					
						2025-04-22 07:22:44 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7ba808594c 
					 
					
						
						
							
							cl-ast: Cleanup  
						
						 
						
						... 
						
						
						
						- Function bind is now one Pattern
- TyRef now allows &Ty (i.e. &[i32], &(char, bool)
- Range patterns (they cannot bind, only check whether a value is in range
- ArrayRep repeat has been reverted to usize, for now, until early consteval is implemented. 
						
						
					 
					
						2025-04-21 04:17:45 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						82e62ab4ac 
					 
					
						
						
							
							cl-parser: Dereference first(?)  
						
						 
						
						
						
						
					 
					
						2025-04-15 23:44:56 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a4176c710e 
					 
					
						
						
							
							cl-ast: Add filename to File  
						
						 
						
						... 
						
						
						
						- Better error reporting
- Better pizza
- Papa Cow's 
						
						
					 
					
						2025-03-14 04:11:22 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						33e13425a9 
					 
					
						
						
							
							cl-ast: Clean up "to", "extents", Module."kind"  
						
						 
						
						
						
						
					 
					
						2025-03-14 00:52:43 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						11c8daaed0 
					 
					
						
						
							
							cl-ast: Re-add(?) the Infer type-pattern  
						
						 
						
						
						
						
					 
					
						2025-03-12 01:20:58 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						fdf076c272 
					 
					
						
						
							
							cl-ast: Remove Option-like "*Kind"s  
						
						 
						
						
						
						
					 
					
						2025-03-11 23:32:58 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7e311cb0ef 
					 
					
						
						
							
							conlang: RIP THE EXPRKIND BANDAGE OFF  
						
						 
						
						... 
						
						
						
						cl-ast: No more bare ExprKind: every Expr has a Span
cl-interpret: Give errors a span
cl-repl: Print eval errors in load_file, instead of returning them. These changes are relevant. 
						
						
					 
					
						2025-03-11 00:36:42 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e39b390441 
					 
					
						
						
							
							cl-parser, cl-repl: Add ./[mod].cl to module search path  
						
						 
						
						
						
						
					 
					
						2025-02-23 02:44:26 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						2fd08193fd 
					 
					
						
						
							
							cl-parser: Promote match scrutinee to position  
						
						 
						
						
						
						
					 
					
						2025-02-23 02:43:22 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7d3f189100 
					 
					
						
						
							
							conlang: Introduce ..rest Patterns, refactor Ranges  
						
						 
						
						
						
						
					 
					
						2025-02-23 02:41:41 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						cc6168b55e 
					 
					
						
						
							
							cl-ast: Remove Param, replace with flat Pattern  
						
						 
						
						
						
						
					 
					
						2025-02-23 02:01:38 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e3d94d8949 
					 
					
						
						
							
							conlang: Unify binding operations!  
						
						 
						
						... 
						
						
						
						This breaks out the pattern matching/unification algorithm from cl-interpret/interpret.rs to cl-interpret/pattern.rs
TODO: pattern destructuring in const, static :^) 
						
						
					 
					
						2025-02-22 05:16:37 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						697d139cfd 
					 
					
						
						
							
							conlang: Add Tuple-Struct Patterns  
						
						 
						
						... 
						
						
						
						- Patterns are no longer parsed with the highest precedence
- Function calls with just a path and a tuple of args can now be transformed into a Pattern 
						
						
					 
					
						2025-02-22 01:37:08 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						5d2c714bc1 
					 
					
						
						
							
							conlang: Patterns...2!  
						
						 
						
						... 
						
						
						
						- Deny arbitrary paths in patterns (only one non-keyword identifier allowed!)
- Allow patterns in for-loop binders (literally useless atm, but it's a step toward making patterns the only way to bind names.)
Next: Functions, Tuple Struct Patterns... And solving the stupid syntactic ambiguity of structors. 
						
						
					 
					
						2025-02-22 01:00:29 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						772286eefa 
					 
					
						
						
							
							conlang: Single-expression functions  
						
						 
						
						
						
						
					 
					
						2025-02-20 21:59:42 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						edabbe1655 
					 
					
						
						
							
							cl-interpret: process use items and imports in the interpreter  
						
						 
						
						
						
						
					 
					
						2025-02-18 21:44:52 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6ee9bbd72e 
					 
					
						
						
							
							conlang: PATTERN MATCHING AND DESTRUCTURED BINDINGS WOOOOO  
						
						 
						
						... 
						
						
						
						- Integrate the Match and Pattern nodes into the AST
  - TODO: `let x: T` is ambiguous with `let x: {}`. Currently the latter takes precedence in the parser.
- Implement pattern matching through unification in the interpreter.
  - It's not fast, but it works!
- Refactor destructuring assignments to use the new pattern functionality 
						
						
					 
					
						2025-01-29 04:15:33 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d21683ad61 
					 
					
						
						
							
							conlang: Add Quote expression as a hack for testing  
						
						 
						
						... 
						
						
						
						Possibly removed later, or replaced with something that turns Conlang AST nodes into Conlang data structures. 
						
						
					 
					
						2025-01-29 03:56:19 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						518fbe74a1 
					 
					
						
						
							
							cl-ast: Fix AddrOf misbehavior  
						
						 
						
						
						
						
					 
					
						2025-01-29 03:31:24 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						5deb585054 
					 
					
						
						
							
							cl-ast: Add float support  
						
						 
						
						... 
						
						
						
						- Smuggle floats as integers to maintain `eq`
- This is bad, but not terrible for spec-compliant floats. Might have issues with NaN.
cl_parser: Smuggle floats
cl_interpret: unpack smuggled floats in float literal node 
						
						
					 
					
						2024-09-19 13:20:19 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0f8b0824ac 
					 
					
						
						
							
							cl-parser: Fix precedence of comparison operators  
						
						 
						
						
						
						
					 
					
						2024-09-18 00:57:44 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8675f91aca 
					 
					
						
						
							
							cl-ast: Remove tail from let (it caused more problems that it could've solved)  
						
						 
						
						
						
						
					 
					
						2024-07-31 03:19:20 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						de63a8c123 
					 
					
						
						
							
							cl-parser: Outline precedence parser  
						
						 
						
						
						
						
					 
					
						2024-07-31 02:55:01 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						533436afc1 
					 
					
						
						
							
							cl-parser: Move precedence parser into its own module  
						
						 
						
						
						
						
					 
					
						2024-07-31 02:48:39 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1eb0516baf 
					 
					
						
						
							
							cl-parser: Rearrange to match cl-ast  
						
						 
						
						... 
						
						
						
						Also reorder `Let` in the AST 
						
						
					 
					
						2024-07-31 02:35:41 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						97808fd855 
					 
					
						
						
							
							cl-parser: Transliterate to a trait-based parsing implementation  
						
						 
						
						... 
						
						
						
						Bump version number. 
						
						
					 
					
						2024-07-31 01:39:00 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						388a69948e 
					 
					
						
						
							
							Revert "cl-ast: Unify break, return, and unary expressions"  
						
						 
						
						... 
						
						
						
						This reverts commit adb0fd229c . 
						
						
					 
					
						2024-07-30 22:31:39 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						adb0fd229c 
					 
					
						
						
							
							cl-ast: Unify break, return, and unary expressions  
						
						 
						
						
						
						
					 
					
						2024-07-30 20:16:07 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0e545077c6 
					 
					
						
						
							
							cl-ast: Remove "Continue" struct  
						
						 
						
						
						
						
					 
					
						2024-07-30 19:42:28 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b64cc232f9 
					 
					
						
						
							
							cl-ast: Move loop expression into unary exprs (with lowest priority)  
						
						 
						
						
						
						
					 
					
						2024-07-30 18:21:25 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b0341f06fd 
					 
					
						
						
							
							cl-ast: Move let into Expr  
						
						 
						
						
						
						
					 
					
						2024-07-30 18:02:09 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a3e383b53f 
					 
					
						
						
							
							cl-token: Flatten TokenKind into a single enum (wow!)  
						
						 
						
						
						
						
					 
					
						2024-07-30 16:47:09 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						883c2677d9 
					 
					
						
						
							
							cl-parser: Index is NOT a low precedence operator!!!  
						
						 
						
						
						
						
					 
					
						2024-07-27 17:37:29 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e43847bbd4 
					 
					
						
						
							
							conlang: Introduce as casting  
						
						 
						
						... 
						
						
						
						Arbitrary primitive type conversion
Currently implemented as jankily as possible in the interpreter, but it works alright™️  
						
						
					 
					
						2024-07-26 05:26:08 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						3511575669 
					 
					
						
						
							
							conlang: Add array and slice type syntax  
						
						 
						
						
						
						
					 
					
						2024-07-20 18:22:50 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b3d62c09aa 
					 
					
						
						
							
							conlang: Self is not a type, it's a path to a type  
						
						 
						
						
						
						
					 
					
						2024-07-17 15:05:52 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1c3a56f5b5 
					 
					
						
						
							
							misc: Fix broken doc links, remove "pool" from index_map.rs  
						
						 
						
						
						
						
					 
					
						2024-05-19 15:32:57 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0cc0cb5cfb 
					 
					
						
						
							
							conlang: Remove "Identifier" node  
						
						 
						
						... 
						
						
						
						It never carried any extra information, and got in the way everywhere it was used. 
						
						
					 
					
						2024-05-19 14:41:31 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f330a7eaa5 
					 
					
						
						
							
							conlang: Split assignment into plain Assign and assign-with-Modify  
						
						 
						
						
						
						
					 
					
						2024-05-19 14:31:30 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8d8928b8a8 
					 
					
						
						
							
							conlang: Struct, tuple member accesses, member function call syntax  
						
						 
						
						... 
						
						
						
						Currently uses UFCS in the interpreter. This may change after type checking? 
						
						
					 
					
						2024-05-19 13:55:28 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						3fe5916a4f 
					 
					
						
						
							
							cl-ast: Switch from old string interner to new string interner  
						
						 
						
						... 
						
						
						
						Update cl-parser, et. al. to match. 
						
						
					 
					
						2024-04-27 20:24:11 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						aa3f357fca 
					 
					
						
						
							
							conlang: Misc. doc fixes  
						
						 
						
						
						
						
					 
					
						2024-04-24 20:05:55 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						40ec9b30e4 
					 
					
						
						
							
							conlang: Use interned strings (Sym) for all symbols  
						
						 
						
						
						
						
					 
					
						2024-04-24 19:34:29 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b74c4cd5bf 
					 
					
						
						
							
							cl-parser: Forego RAII scopeguard finalization pattern in impl Fold for ModuleInliner  
						
						 
						
						... 
						
						
						
						We have an outer function *right there* to do cleanup for us. 
						
						
					 
					
						2024-04-22 21:43:30 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f483d690e2 
					 
					
						
						
							
							Revert "Cargo.toml: Add documentation key"  
						
						 
						
						... 
						
						
						
						This reverts commit 087969e117 . 
						
						
					 
					
						2024-04-22 00:07:44 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						087969e117 
					 
					
						
						
							
							Cargo.toml: Add documentation key  
						
						 
						
						
						
						
					 
					
						2024-04-21 23:49:24 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9c3c2e8674 
					 
					
						
						
							
							cl-parser: Implement a module inlining pass  
						
						 
						
						
						
						
					 
					
						2024-04-21 22:31:01 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						02323ae6f2 
					 
					
						
						
							
							cl-parser: Sync error::Parsing with cl-ast  
						
						 
						
						
						
						
					 
					
						2024-04-21 21:20:55 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e36a684422 
					 
					
						
						
							
							grammar: Make UseTree less ultra-janky  
						
						 
						
						
						
						
					 
					
						2024-04-21 18:57:46 -05:00