KDL (pronounced “cuddle”) is a document language. In terms of data model, think XML. A KDL file contains a heirarchy of nodes, and each node can have arguments and attributes.
a-node arg1 attribute=#null {
child-node (i8)127
}
My interest in KDL is for encoding GUI layouts. Anyway, that’s why I’ve been writing KDL parser in zig. It’s not ready to use, but you can check out the code here.
BQN (prounounced “bacon” if it allows for puns) is a neat little array programming language. It’s embeddable and allows for very compact code, in part because it makes use of unicode symbols for many builtin functions. Here’s a sample.
ParseKey ← { (⊑(𝕩⊐'='))↑𝕩 }
ParseValue ← { ⊑(𝕩⊐'=')<(≠𝕩) ? (+⟜1⊑𝕩⊐'=')⊸↓ 𝕩 ; "" }
ParseArg ← { 𝕊 i‿s: "--" ≡ 2↑ s ? (ParseKey 2↓s)‿(ParseValue s)‿i # Long flag
; 𝕊 i‿s: "-" ≡ 1↑ s ? (1↓s)‿(2↓s)‿i # Short flag
; 𝕊 i‿s: ""‿s‿i # Positional argument
}
Parse ⇐ { len←≠𝕩 ⋄ len‿3 ⥊ > ParseArg¨ (↕len) ⋈¨ 𝕩 }
IndexOf ⇐ { ⊑(⥊⊏⎉1 𝕨)⊐<𝕩 }
Contains ⇐ { (𝕨 IndexOf 𝕩) < ≠𝕨 }
NameOf ← { ⊑⟜𝕨 ⋈⟜0 𝕩 }
ValueOf ⇐ { ⊑⟜𝕨 ⟨𝕨 IndexOf 𝕩, 1⟩ }
NumericValueOf ⇐ { •ParseFloat 𝕨 ValueOf 𝕩 }
IsFlag ⇐ { 𝕨 0⊸≠∘≠∘NameOf 𝕩 }
If you’ve never used BQN before you’ve probably noticed one of BQN’s biggest weaknesses—you need to learn how to read it first. Despite that, I’m pretty enamored with BQN. I want to embed it in to zig to use for math-heavy code.
a while ago i wanted to make a wizard program that could be used to install a game from a disk. i targeted win32, but my real goal was linux (through wine). of course, since i wrote it in zig, the name had to be lizard wizard.
Wizard-2020 example.”.
why am i posting about it now? well, i just made a bunch of changes and now it is more of a library. it wraps win32 so using it isn’t shit. i’m gonna call it lizard. and it will have a wizard widget ☺
in the future i’ll probably use it as a base for any win32 stuff i end up doing.
i wanted a new name, but all my stuff has my old name on it. so i’m making a new blog with zine so i have something to put on the new domain with my new name.
i’d like to be called lurkie, or lurk for short. if you need to talk about me, use they/them.