| .. | ||
| errors | ||
| lexer | ||
| parser | ||
| token | ||
| util | ||
| doc.go | ||
| errors.go.template | ||
| mlr.bnf | ||
| README.md | ||
This directory contains a single source file, mlr.bnf, which is the
lexical/semantic grammar file for the Miller put/filter DSL
(domain-specific language) using the GOCC framework. (In a classical Lex/Yacc
framework, there would be separate mlr.l and mlr.y files; using GOCC, there
is a single mlr.bnf file.)
All subdirectories of pkg/parsing/ are autogen code created by GOCC's
processing of mlr.bnf. They are nonetheless committed to source control,
since running GOCC takes quite a bit longer than the go build does, and the
BNF file doesn't often change. (BNF is for Backus-Naur Form which is the
phrasing of the grammar file that GOCC support.) See the top-level miller/go
build scripts for how to rerun GOCC. As of this writing, it's
gocc -o pkg/parsing pkg/parsing/mlr.bnf
as invoked from the repo base directory -- however you should instead use
tools/build-dsl
Making changes to mlr.bnf requires several minutes to re-run GOCC. For
experimental changes, please see the
experiments directory.