Premium Only Content
			Compiler From Scratch: Phase 1 - Tokenizer Generator 014: Regex code gen/testing, starting lazy eval
Streamed on 2024-10-18 (https://www.twitch.tv/thediscouragerofhesitancy)
Zero Dependencies Programming!
Last week we had debugged the NFA/DFA not picking up the "ANY" operator correctly and fixed it up through the DFA. I didn't like the way it printed out in the DFA table or DFA graphviz plot, so I fixed that first thing. That was followed up with a small refactor of function names left over from last week's output improvements. Just a couple of small, easy tasks to get warmed up.
After that it was time to do code generation for the ANY operator, which was easier than expected. It was basically putting "true" inside the if condition. A little debugging around the Regex for strings and it was good to go. After that I generated code for the StartOfLine and EndOfLine anchors. The main effort was two functions added to the ChrRef, then that function was called from the tokenizer. Since the anchor operators don't consume a character there was a bit of fiddling to suppress the "munch" function call in these cases. Just a bit more finagling around detecting the end of input and all was well.
I tested a couple of possible error cases with the new processing in place. One turned out to be fine, the other caused a crash as expected (unterminated string at the end of input). This was noted in the TODO for future attention.
And finally it was time to start building out the lazy tokenizer processing. There were a few opportunities to refactor/cleanup other code as we went through this exercise. The high-level methods for doing the lazy processing are put together well enough to compile, but there are still changes needed to get the whole thing working end-to-end, mostly in the helper functions. We'll pick up there next week.
- 	
				
							2:47:28
								Barry Cunningham
8 hours agoYOU'VE BEEN MISINFORMED! GREED IS ACTUALLY GOOD! ESPECIALLY NOW! (AND MORE NEWS)
80.8K31 - 	
				
							LIVE
								SpartakusLIVE
8 hours agoSNIPING in Battlefield 6 - REDSEC || Monday MOTIVATION to CONQUER the Week
165 watching - 	
				
							49:25
								ThisIsDeLaCruz
4 hours ago $4.69 earnedBack Stage Pass with Avenged Sevenfold
40.3K7 - 	
				
							6:43:40
								GritsGG
9 hours agoWorld Record Win Streak Attempt! #1 Most Wins 3880+!
20.6K1 - 	
				
							3:12:05
								Tundra Tactical
6 hours ago $10.28 earnedProfessional Gun Nerd Plays Battlefield 6
51.6K5 - 	
				
							1:01:12
								Donald Trump Jr.
9 hours agoThe China Matrix with Journalist Lee Smith | TRIGGERED Ep.288
142K86 - 	
				
							11:56:00
								Dr Disrespect
14 hours ago🔴LIVE - DR DISRESPECT - ARC RAIDERS - FULL SEND INTO THE RED
157K18 - 	
				
							5:17:51
								JdaDelete
5 hours ago $0.35 earnedFinally playing Eldin Ring | First Playthrough Episode 2
12.1K3 - 	
				
							1:02:08
								BonginoReport
7 hours agoNicki Minaj Speaks Out Against Christian Persecution - Nightly Scroll w/ Hayley Caronia (Ep.169)
64.6K51 - 	
				
							5:23:36
								HomieQuest
7 hours agoLive Streaming! Pokemon Legends Z-A
4.82K4