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.
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.
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.