miller/go/src/parsing
2021-03-07 23:20:11 -05:00
..
errors more of same 2021-02-14 01:25:32 -05:00
lexer port case-insensitive regex literals to the BNF 2021-02-15 09:52:28 -05:00
parser allow multiple statements in middle/continuation of triple-for 2021-03-07 23:20:11 -05:00
token port case-insensitive regex literals to the BNF 2021-02-15 09:52:28 -05:00
util go.mod attempt 2021-02-14 01:13:24 -05:00
errors.go.template more of same 2021-02-14 01:25:32 -05:00
mlr.bnf allow multiple statements in middle/continuation of triple-for 2021-03-07 23:20:11 -05:00
README.md more of same 2021-02-14 01:25:32 -05:00

This directory contains a single source file, mlr.bnf, which is the lexical/semantic grammar file for the Miller put/filter DSL 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 src/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 mlr.go does, and the BNF file doesn't often change. See the top-level miller/go build scripts for how to rerun GOCC. As of this writing, it's bin/gocc -o src/parsing src/parsing/mlr.bnf as invoked from the miller/go base directory.