up-to-here

You say “Tomayto”, I say “Tomahto”. Exploring Syntax options in CongoCC.

What this article’s title alludes to is the fact that, once you have a complex language (or system) there are usually multiple equally valid ways to say something. Let’s consider the following typical case, a comma-separated list of some sort, something like: [1, 2, x, y, “Hello, World”] To describe the grammar for this in …

You say “Tomayto”, I say “Tomahto”. Exploring Syntax options in CongoCC. Read More »

Revisiting Assertions, introducing the ENSURE keyword

Assertions, implemented in late 2021, are certainly an important feature in CongoCC — actually pretty much essential when writing grammars for very gnarly languages. However, as currently implemented, they are admittedly a somewhat strange hybrid construct. The main reason for this is that ASSERT has completely different semantics depending on whether you hit the assertion …

Revisiting Assertions, introducing the ENSURE keyword Read More »

New Feature: The =>|| delimiter stands for “scan up to here”

Revisiting LOOKAHEAD Redux Not so long ago, I had a sort of eureka moment when I realized that the legacy LOOKAHEAD construct was fundamentally half-baked or broken. Not only that, but I started narrowing in on how to definitely address the issue! Well, let’s get concrete. Suppose we have a production that looks kind of like this: FooBar : …

New Feature: The =>|| delimiter stands for “scan up to here” Read More »