Skip to content

Latest commit

 

History

History
35 lines (32 loc) · 1.89 KB

TODO.md

File metadata and controls

35 lines (32 loc) · 1.89 KB

TODO

  • P1; exception inside matcher needs own error code - too easy to miss!
  • P1; remove console colors in browser? option
  • P2; quotes are value enders - x:a"a" is an err! not 'a"a"', option?
  • P2: fix type chaining with jsonic.rule
  • P3; Consider: option to control comma null insertion
  • P3; YAML quoted strings: https://yaml-multiline.info/ - via options
    • provide in yaml plugin
  • P3; cli - less ambiguous merging at top level
  • P3; consistent use of clean on options to allow null to mean 'remove property'
  • P3; data file to diff exhaust changes
  • P3; define explicitly: p in close, r in open, behaviour
    • r in open means a run of opens with one close - see TOML - needs unit test
    • p in close means ??? - needs unit test
  • P3; docs: nice tree diagram of rules (generate?)
  • P3; docs: ref https://wiki.alopex.li/OnParsers
  • P3; document standard g names: open, close, step, start, end, imp, top, val, map, etc
  • P3; error if fixed tokens clash
  • P3; http://seriot.ch/projects/parsing_json.html
    • implement as tests
  • P3; if token recognized, error needs to be about token, not characters
  • P3; implicit lists in pair values: "a:1,2 b:3" -> {a:[1,2], b:3} - pair key terminates (A)
  • P3; internal errors - e.g. adding a null rulespec
  • P3; is s:[] needed? different from s:undefined ?
  • P3; line continuation ("" at end) should be a feature of standard JSONIC text
  • P3; option for sparse arrays: https://dmitripavlutin.com/javascript-sparse-dense-arrays/
  • P3; perhaps remove the # prefix from token names?
  • P3; rename tokens to be user friendly - maybe?
  • P3; specific error if rule name not found when parsing
  • P3; string format for rule def: s:'ST,NR' -> s:[ST,NR], also "s:ST,NR,p:foo,..." - needs (A) - can only used post standard definition (thus not in grammar.ts)
  • P3; support BigInt numbers: 123n
  • P3; unit test for custom alt error: eg. { e: (r: Rule) => r.close[0] } ??? bug: r.close empty!