Is LSCL documented?

Hi all,
I am looking for documentation on LSCL, the logstash configuration language. The one that inputs and pipelines are written in and looks like this:

input {
  kafka {
    id => "whatever"
  }
}

I'm in a situation where I want to auto-generate a configuration based on some inputs, and so I would like to make sure I have a good grasp on the syntax.

Unfortunately, I cannot find any documentation on this. Since starting to look for it, I've learned it's internally referred to as LSCL, it's some sort of DSL that uses Treetop. Yet while I've found all this, I have yet to find any documentation on it.

Is there documentation for this configuration format? Or are we supposed to figure it out by reading the compiler code? logstash/logstash-core/lib/logstash/compiler/lscl at v6.1.3 · elastic/logstash · GitHub

tx
joost

I believe the answer to that is "yes".

Thanks you. That's not great, but at least it's clear I should waste no time looking for it.