tom 0.0.1

Yet another format-preserving TOML parser/manipulator.
Documentation
DOC@[0; 42)
  ENTRY@[0; 6)
    KEY@[0; 1)
      BARE_KEY@[0; 1) "a"
    WHITESPACE@[1; 2)
    EQ@[2; 3) "="
    WHITESPACE@[3; 4)
    VALUE@[4; 6)
      ARRAY@[4; 6)
        L_BRACK@[4; 5) "["
        R_BRACK@[5; 6) "]"
  WHITESPACE@[6; 7)
  ENTRY@[7; 14)
    KEY@[7; 8)
      BARE_KEY@[7; 8) "b"
    WHITESPACE@[8; 9)
    EQ@[9; 10) "="
    WHITESPACE@[10; 11)
    VALUE@[11; 14)
      ARRAY@[11; 14)
        L_BRACK@[11; 12) "["
        VALUE@[12; 13)
          NUMBER@[12; 13) "1"
        R_BRACK@[13; 14) "]"
  WHITESPACE@[14; 15)
  ENTRY@[15; 23)
    KEY@[15; 16)
      BARE_KEY@[15; 16) "c"
    WHITESPACE@[16; 17)
    EQ@[17; 18) "="
    WHITESPACE@[18; 19)
    VALUE@[19; 23)
      ARRAY@[19; 23)
        L_BRACK@[19; 20) "["
        VALUE@[20; 21)
          NUMBER@[20; 21) "1"
        COMMA@[21; 22) ","
        R_BRACK@[22; 23) "]"
  WHITESPACE@[23; 24)
  ENTRY@[24; 31)
    KEY@[24; 25)
      BARE_KEY@[24; 25) "d"
    WHITESPACE@[25; 26)
    EQ@[26; 27) "="
    WHITESPACE@[27; 28)
    VALUE@[28; 31)
      ARRAY@[28; 31)
        L_BRACK@[28; 29) "["
        VALUE@[29; 30)
          ERROR@[29; 30)
            COMMA@[29; 30) ","
        R_BRACK@[30; 31) "]"
  WHITESPACE@[31; 32)
  ENTRY@[32; 41)
    KEY@[32; 33)
      BARE_KEY@[32; 33) "e"
    WHITESPACE@[33; 34)
    EQ@[34; 35) "="
    WHITESPACE@[35; 36)
    VALUE@[36; 41)
      ARRAY@[36; 41)
        L_BRACK@[36; 37) "["
        VALUE@[37; 38)
          NUMBER@[37; 38) "1"
        WHITESPACE@[38; 39)
        ERROR@[39; 40)
          BARE_KEY_OR_NUMBER@[39; 40) "1"
        R_BRACK@[40; 41) "]"
  WHITESPACE@[41; 42)

error@[29; 30) ",": expected a value
error@[39; 40) "1": expected `,`