making good progress on my parser, and now i'm thinking of committing some crimes >:3

that being having both `and` and `&&`, and `or` and `||`, where the latter coerces to bool and the former does not and acts like lua >_>

#PLDev

in less trolling news i'm really liking the way if/while/etc blocks work in this syntax. either you do this

if x { ... }

or you do

if x: print "single line";

so the colon delineates the end of the condition but is optional if you have a {} block instead of a single line. and yes, this is also valid:

if x: { ... }

not sure what i wanna do with for loops 🙃 C style for (;;) or Lua style for x = 1, 10
maybe i will just only have while loops for now so i have time to think about it. for loops are just while loops but fancy anyway

Trying to think of what's left for my parser before I can start writing and compiling actual programs. Right now all it knows is integers. I guess if I expose some stuff to interact with memory handles and the VM's system calls I could make real programs?

It'd be nicer to have like, actual pointers and strings and arrays though, but that's a lot more work. So maybe I should just do the quick and dirty way for now?

@eniko do you allow nested expressions? I did and only got as far as the shunting yard algorithm to try and sort them out. Haven't worked on my own in a while, interested to see how you're handling it
@an_smol_catto yeah, i'm using a pratt parser as per Crafting Interpreters: https://craftinginterpreters.com/compiling-expressions.html
Compiling Expressions · Crafting Interpreters

@eniko this looks really useful thanks!