miller/internal/pkg/parsing
John Kerl 67179eb791
Allow 0o... octal literals in the DSL (#864)
* Continue from #856

* Update expected-fail messages in test cases

* Allow 0o... octal literals in the DSL

* Build artifacts for previous commit

* go.mod/go.sum for goccmack/gocc

* Regression-test case

* Doc updates
2022-01-11 19:46:45 -05:00
..
errors Continue #856 (#865) 2022-01-11 19:42:08 -05:00
lexer Allow 0o... octal literals in the DSL (#864) 2022-01-11 19:46:45 -05:00
parser More Go-package restructuring (#748) 2021-11-12 12:49:55 -05:00
token Standardize Go-package structure (#746) 2021-11-11 14:15:13 -05:00
util Standardize Go-package structure (#746) 2021-11-11 14:15:13 -05:00
doc.go Standardize Go-package structure (#746) 2021-11-11 14:15:13 -05:00
errors.go.template Fix typo: columnn -> column (#856) 2022-01-10 19:55:35 -05:00
mlr.bnf Allow 0o... octal literals in the DSL (#864) 2022-01-11 19:46:45 -05:00
README.md Standardize Go-package structure (#746) 2021-11-11 14:15:13 -05:00

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 internal/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 bin/gocc -o internal/pkg/parsing internal/pkg/parsing/mlr.bnf as invoked from the miller/go base directory.

Making changes to mlr.bnf requires several minutes to re-run GOCC. For experimental changes, please see the experiments directory.