(Ir)regular (self-)expression #1

Hello there, long time no see! Hopefully you’re doing well.

It has been almost 2 3 months since my last post; that sure doesn’t sound consistent, a quality that I really seem to like. Nonetheless, you’re reading this, which means the timer is finally reset.

So, has anything interesting happened in my life during that period? Sort of.

nsl

Albeit very slowly, I’ve been working on nsl and a C library for it. As a not huge fan of dealing with text, I’ve spent a bit too much time on getting lexing right. My views on what the language should look like constanly changing surely didn’t make things any better, and the fact that C doesn’t really help you with this kind of logic was slowing down the progress even further. But now, it’s working, or at least it seems like it; I haven’t written any tests yet, but the following piece gets lexed correctly:

outputs: =
	- +
		name: HDMI-0
		mode: 640x480
		enabled: true
	- +
		name: WL-1
		scale: 2
		layers: =
			- background
			- bottom
			- top
			- overlay

autostart: | #!sh
	waybar &
	if true; then
		echo "hi!"
	fi

	exit

identity: =
	- [1; 0]
	- [0; 1]

linears: +
	map: {
	  'one': "two";
	  pets: [cat; dog];
	  fruits: [apple; orange]}

	list: [
	    alpha;
	    beta;
	    gamma;
	]

With the lexer finished, implementing the remaining parts was a piece of cake: the parser and the emitter (the opposite of parser) were done in much less time as their sets of possible inputs are very restricted compared to a stream of Unicode characters, and therefore they don’t have nearly as many invalid cases to deal with. The printer, responsible for converting a stream of tokens to text, isn’t finished yet, but it shouldn’t take too long. (Famous last words, eh? But seriously, there’s nothing complicated in this.)

Games

As a fan of Celeste, I’ve been playing chapters from D-Sides Pack by Monika, and they are waaay harder than the original game. And as if the game difficulty wasn’t enough, Steam decided to cyberbully me with its cloud thing and deleted all my progress right after I got to 7D.

The end screen of chapter 7D, with the text “Love” in center.

But of course, that didn’t stop me from beating every chapter again and finally conquering this absolutely bizarre summit. (And no, I’m not playing 8D, that one doesn’t look like fun.)


A few days ago, I’ve picked up Deltarune, a spiritual successor to Undertale. I’ve played the first chapter when it came out, but still decided to replay it before diving into the second one. To keep it short: Ralsei is cute, and Susie, despite her best effort, is even cuter, but neither is a match for Noelle. As far as I understand, I have almost finished the “regular” route, but apparently there’s Snowgrave Route as well, which I want to check out next.

Meatspace

Oh, come on! Do you do anything besides sitting in front of your laptop?

Yes! Sometimes.

A few weeks before I went to a concert that was supposed to take place almost 2 years ago, yet got postponed again and again due to COVID regulations. Finally, the event I’ve been waiting for has happened, and I’m very glad for it. If I were to describe how it went, you wouldn’t notice anything extraordinary: everyone got all warmed up and filled with energy, the artist finally appeared on stage, the crowd exploded with cheering, and the next 2.5 hours felt like a lucid dream. The result: a bruised shoulder, hoarse voice, empty stomach, T-shirt drenched in sweat, and unforgettable experience that made up for all of this.

Surely, some kind of a special occassion isn’t necessary for me to crawl out of my room, but aside from going to university, I barely have a reason to. (Hm, that sounds a bit sad.) Unfortunately, now it’s that time of the year when I get reminded that hay fever is a thing. Achoo!


That’s all for today. I’m still not used to writing anything long in English, but practice makes perfect, as they say. Stay tuned for nsl release, future projects, and more posts!

// vyi