diff --git a/go/src/miller/dsl/cst/types.go b/go/src/miller/dsl/cst/types.go index 5b5f884b0..bd35a8473 100644 --- a/go/src/miller/dsl/cst/types.go +++ b/go/src/miller/dsl/cst/types.go @@ -32,7 +32,8 @@ type State struct { Oosvars *types.Mlrmap FilterResult bool OutputChannel chan<- *types.RecordAndContext - // TODO: stack frames will go into individual statement-block nodes + // TODO: stack frames will go into individual statement-block nodes or here? + // Needs to be here, for scope-resolution walks } func NewEmptyState() *State { @@ -78,6 +79,7 @@ type IExecutable interface { // Also implements IExecutable type StatementBlockNode struct { executables []IExecutable + // TODO: localvars -- here or in State's stack-frame } // ================================================================ diff --git a/go/todo.txt b/go/todo.txt index 1d4586890..e54acc0cd 100644 --- a/go/todo.txt +++ b/go/todo.txt @@ -1,30 +1,46 @@ ---------------------------------------------------------------- TOP OF LIST: -* go-try: +! try Lvalue/Rvalue coalesce + > to make condish work & unhack filter + > better error messages in the CST builder anyway, so it's a win - o while and do-while statements -- not urgent - ~ for-loops -- require localvars as prereq - ! need Lvalue/Rvalue coalesce - > to make condish work & unhack filter - > better error messages in the CST builder anyway, so it's a win +* while and do-while statements -- not urgent - o rename: bulk-edit for b,i,x vs x,i,b cases +~ for-loops -- require localvars as prereq + > for-k, for-kv, for-knv sooner -- stack-frame special cases + > defer triple-for until later - ! filter - > bare-boolean LR-1 conflicts wut - ? erase BNF distinction between BaseLvalue and MlrvalOrFunction - - ... i think not - > prepend "filter " after last ";" hack -- ? gurk if "...;..." in a string :^/ - - state machine dquote in/out w walkback; \" handling; good UT - ! quoted NIDX - - how with whitespace regex -- ? - ! quoted DKVP - - what about csvlite-style -- ? needs a --dkvplite ? - ! --implicit-csv-header - ! cat -n -g a,b,c - o clean up mlr --help to not advertise things it doesn't do yet - o ASV? golang csv package parameterizes comma but not crlf :( +* stack frames + o at cst.State: list.List of StackFrame + o for now: StackFrame containing only hash-map from name to mlrval. + - default to absent (no hoisting) + - no scope-walks needed for for-loops + +* rename: bulk-edit for b,i,x vs x,i,b cases + +! filter + > bare-boolean LR-1 conflicts wut + ? erase BNF distinction between BaseLvalue and MlrvalOrFunction + - ... i think not + > prepend "filter " after last ";" hack -- ? gurk if "...;..." in a string :^/ + - state machine dquote in/out w walkback; \" handling; good UT + +! quoted NIDX + - how with whitespace regex -- ? +! quoted DKVP + - what about csvlite-style -- ? needs a --dkvplite ? + +! --implicit-csv-header + +! cat -n -g a,b,c + +* clean up mlr --help to not advertise things it doesn't do yet + +* ASV? golang csv package parameterizes comma but not crlf :( + +---------------------------------------------------------------- +CATEGORIES: * widen verb coverage o count