Crosscut

Daily Thought - 2024-07-24

Hey, I'm Hanno! These are my daily thoughts on Crosscut, the programming language I'm creating. If you have any questions, comments, or feedback, please get in touch!

This thought was published before Crosscut was called Crosscut! If it refers to "Caterpillar", that is the old name, just so you know.

< back to list

I just finished implementing if in Caterpillar. So far, I had very low-level placeholders (return_if_zero and return_if_non_zero), which were easy to implement, but obviously not what a high-level language needs.

Remember that Caterpillar still has no syntax. It is embedded into Rust, meaning you can use a Rust API to build its syntax tree. The following is just pseudocode to demonstrate how if in Caterpillar currently works, and what it could look like once syntax is implemented:

condition
{ do_if_true }
{ do_if_false }
    if

if is just a function call that takes three arguments: A condition (the language is still untyped, so that's just a number; 0 is considered to be "false"), a block of code for the "then" case, and another block of code for the "else" case. I have my doubts about this, but for now I've decided to keep the syntax simple and model as much as I can as function calls.

<< previous thoughtnext thought >>

Hey, you! Want to subscribe to my daily thoughts? Just let me know (maybe include a nice message, if you're up for it), and I'll send you an email whenever I post a new one.