[comment:# This is a TOML document.]
[comment:# All examples are taken from https://github.com/toml-lang/toml/blob/master/README.md]
[comment:# with MIT licence.]

[type:title] [operator:=] [string:"TOML Example"]

[punctuation.bracket:[][type:owner][punctuation.bracket:]]
[type:name] [operator:=] [string:"Tom Preston-Werner"]
[type:dob] [operator:=] [string.special:1979-05-27T07:32:00-08:00] [comment:# First class dates]

[punctuation.bracket:[][type:database][punctuation.bracket:]]
[type:server] [operator:=] [string:"192.168.1.1"]
[type:ports] [operator:=] [punctuation.bracket:[] [number:8001][punctuation.delimiter:,] [number:8001][punctuation.delimiter:,] [number:8002] [punctuation.bracket:]]
[type:connection_max] [operator:=] [number:5000]
[type:enabled] [operator:=] [boolean:true]

[punctuation.bracket:[][type:servers][punctuation.bracket:]]

  [comment:# Indentation (tabs and/or spaces) is allowed but not required]
  [punctuation.bracket:[][type:servers][punctuation.delimiter:.][type:alpha][punctuation.bracket:]]
  [type:ip] [operator:=] [string:"10.0.0.1"]
  [type:dc] [operator:=] [string:"eqdc10"]

  [punctuation.bracket:[][type:servers][punctuation.delimiter:.][type:beta][punctuation.bracket:]]
  [type:ip] [operator:=] [string:"10.0.0.2"]
  [type:dc] [operator:=] [string:"eqdc10"]

[punctuation.bracket:[][type:clients][punctuation.bracket:]]
[type:data] [operator:=] [punctuation.bracket:[] [punctuation.bracket:[][string:"gamma"][punctuation.delimiter:,] [string:"delta"][punctuation.bracket:]][punctuation.delimiter:,] [punctuation.bracket:[][number:1][punctuation.delimiter:,] [number:2][punctuation.bracket:]] [punctuation.bracket:]]

[comment:# Line breaks are OK when inside arrays]
[type:hosts] [operator:=] [punctuation.bracket:[]
  [string:"alpha"][punctuation.delimiter:,]
  [string:"omega"]
[punctuation.bracket:]]

[comment:# This is a full-line comment]
[type:key] [operator:=] [string:"value"] [comment:# This is a comment at the end of a line]

[type:key] [operator:=] [string:"value"]

[type:key] [operator:=] [string:"value"]
[type:bare_key] [operator:=] [string:"value"]
[type:bare-key] [operator:=] [string:"value"]
[type:1234] [operator:=] [string:"value"]

[string:"127.0.0.1"] [operator:=] [string:"value"]
[string:"character encoding"] [operator:=] [string:"value"]
[string:"ʎǝʞ"] [operator:=] [string:"value"]
[string:'key2'] [operator:=] [string:"value"]
[string:'quoted "value"'] [operator:=] [string:"value"]

[type:str] [operator:=] [string:"I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF."]

[type:str1] [operator:=] [string:"""
Roses are red
Violets are blue"""]

[comment:# On a Unix system, the above multi-line string will most likely be the same as:]
[type:str2] [operator:=] [string:"Roses are red\nViolets are blue"]

[comment:# On a Windows system, it will most likely be equivalent to:]
[type:str3] [operator:=] [string:"Roses are red\r\nViolets are blue"]

[comment:# The following strings are byte-for-byte equivalent:]
[type:str1] [operator:=] [string:"The quick brown fox jumps over the lazy dog."]

[type:str2] [operator:=] [string:"""
The quick brown \


  fox jumps over \
    the lazy dog."""]

[type:key3] [operator:=] [string:"""\
       The quick brown \
       fox jumps over \
       the lazy dog.\
       """]

[comment:# What you see is what you get.]
[type:winpath]  [operator:=] [string:'C:\Users\nodejs\templates']
[type:winpath2] [operator:=] [string:'\\ServerX\admin$\system32\']
[type:quoted]   [operator:=] [string:'Tom "Dubs" Preston-Werner']
[type:regex]    [operator:=] [string:'<\i\c*\s*>']

[type:regex2] [operator:=] [string:'''I [dw]on't need \d{2} apples''']
[type:lines]  [operator:=] [string:'''
The first newline is
trimmed in raw strings.
   All other whitespace
   is preserved.
''']

[type:int1] [operator:=] [number:+99]
[type:int2] [operator:=] [number:42]
[type:int3] [operator:=] [number:0]
[type:int4] [operator:=] [number:-17]

[type:int5] [operator:=] [number:1_000]
[type:int6] [operator:=] [number:5_349_221]
[type:int7] [operator:=] [number:1_2_3_4_5]     [comment:# valid but inadvisable]

[comment:# fractional]
[type:flt1] [operator:=] [number:+1.0]
[type:flt2] [operator:=] [number:3.1415]
[type:flt3] [operator:=] [number:-0.01]

[comment:# exponent]
[type:flt4] [operator:=] [number:5e+22]
[type:flt5] [operator:=] [number:1e6]
[type:flt6] [operator:=] [number:-2E-2]

[comment:# both]
[type:flt7] [operator:=] [number:6.626e-34]

[type:flt8] [operator:=] [number:9_224_617.445_991_228_313]

[type:bool1] [operator:=] [boolean:true]
[type:bool2] [operator:=] [boolean:false]

[type:date1] [operator:=] [string.special:1979-05-27T07:32:00Z]
[type:date2] [operator:=] [string.special:1979-05-27T00:32:00-07:00]
[type:date3] [operator:=] [string.special:1979-05-27T00:32:00.999999-07:00]

[type:ldt1] [operator:=] [string.special:1979-05-27T07:32:00]
[type:ldt2] [operator:=] [string.special:1979-05-27T00:32:00.999999]

[type:ld1] [operator:=] [string.special:1979-05-27]

[type:arr1] [operator:=] [punctuation.bracket:[] [number:1][punctuation.delimiter:,] [number:2][punctuation.delimiter:,] [number:3] [punctuation.bracket:]]
[type:arr2] [operator:=] [punctuation.bracket:[] [string:"red"][punctuation.delimiter:,] [string:"yellow"][punctuation.delimiter:,] [string:"green"] [punctuation.bracket:]]
[type:arr3] [operator:=] [punctuation.bracket:[] [punctuation.bracket:[] [number:1][punctuation.delimiter:,] [number:2] [punctuation.bracket:]][punctuation.delimiter:,] [punctuation.bracket:[][number:3][punctuation.delimiter:,] [number:4][punctuation.delimiter:,] [number:5][punctuation.bracket:]] [punctuation.bracket:]]
[type:arr4] [operator:=] [punctuation.bracket:[] [string:"all"][punctuation.delimiter:,] [string:'strings'][punctuation.delimiter:,] [string:"""are the same"""][punctuation.delimiter:,] [string:'''type'''][punctuation.bracket:]]
[type:arr5] [operator:=] [punctuation.bracket:[] [punctuation.bracket:[] [number:1][punctuation.delimiter:,] [number:2] [punctuation.bracket:]][punctuation.delimiter:,] [punctuation.bracket:[][string:"a"][punctuation.delimiter:,] [string:"b"][punctuation.delimiter:,] [string:"c"][punctuation.bracket:]] [punctuation.bracket:]]

[type:arr7] [operator:=] [punctuation.bracket:[]
  [number:1][punctuation.delimiter:,] [number:2][punctuation.delimiter:,] [number:3]
[punctuation.bracket:]]

[type:arr8] [operator:=] [punctuation.bracket:[]
  [number:1][punctuation.delimiter:,]
  [number:2][punctuation.delimiter:,] [comment:# this is ok]
[punctuation.bracket:]]

[punctuation.bracket:[][type:table-1][punctuation.bracket:]]
[type:key1] [operator:=] [string:"some string"]
[type:key2] [operator:=] [number:123]

[punctuation.bracket:[][type:table-2][punctuation.bracket:]]
[type:key1] [operator:=] [string:"another string"]
[type:key2] [operator:=] [number:456]

[punctuation.bracket:[][type:dog][punctuation.delimiter:.][string:"tater.man"][punctuation.bracket:]]
[type:type] [operator:=] [string:"pug"]

[punctuation.bracket:[][type:a][punctuation.delimiter:.][type:b][punctuation.delimiter:.][type:c][punctuation.bracket:]]            [comment:# this is best practice]
[punctuation.bracket:[] [type:d][punctuation.delimiter:.][type:e][punctuation.delimiter:.][type:f] [punctuation.bracket:]]          [comment:# same as [d.e.f]]
[punctuation.bracket:[] [type:g] [punctuation.delimiter:.]  [type:h]  [punctuation.delimiter:.] [type:i] [punctuation.bracket:]]    [comment:# same as [g.h.i]]
[punctuation.bracket:[] [type:j] [punctuation.delimiter:.] [string:"ʞ"] [punctuation.delimiter:.] [string:'l'] [punctuation.bracket:]]  [comment:# same as [j."ʞ".'l']]

[punctuation.bracket:[][type:a][punctuation.delimiter:.][type:b][punctuation.bracket:]]
[type:c] [operator:=] [number:1]

[punctuation.bracket:[][type:a][punctuation.bracket:]]
[type:d] [operator:=] [number:2]

[type:name] [operator:=] [punctuation.bracket:{] [type:first] [operator:=] [string:"Tom"][punctuation.delimiter:,] [type:last] [operator:=] [string:"Preston-Werner"] [punctuation.bracket:}]
[type:point] [operator:=] [punctuation.bracket:{] [type:x] [operator:=] [number:1][punctuation.delimiter:,] [type:y] [operator:=] [number:2] [punctuation.bracket:}]

[punctuation.bracket:[][type:name][punctuation.bracket:]]
[type:first] [operator:=] [string:"Tom"]
[type:last] [operator:=] [string:"Preston-Werner"]

[punctuation.bracket:[][type:point][punctuation.bracket:]]
[type:x] [operator:=] [number:1]
[type:y] [operator:=] [number:2]

[punctuation.bracket:[[][type:products][punctuation.bracket:]]]
[type:name] [operator:=] [string:"Hammer"]
[type:sku] [operator:=] [number:738594937]

[punctuation.bracket:[[][type:products][punctuation.bracket:]]]

[punctuation.bracket:[[][type:products][punctuation.bracket:]]]
[type:name] [operator:=] [string:"Nail"]
[type:sku] [operator:=] [number:284758393]
[type:color] [operator:=] [string:"gray"]

[punctuation.bracket:[[][type:fruit][punctuation.bracket:]]]
  [type:name] [operator:=] [string:"apple"]

  [punctuation.bracket:[][type:fruit][punctuation.delimiter:.][type:physical][punctuation.bracket:]]
    [type:color] [operator:=] [string:"red"]
    [type:shape] [operator:=] [string:"round"]

  [punctuation.bracket:[[][type:fruit][punctuation.delimiter:.][type:variety][punctuation.bracket:]]]
    [type:name] [operator:=] [string:"red delicious"]

  [punctuation.bracket:[[][type:fruit][punctuation.delimiter:.][type:variety][punctuation.bracket:]]]
    [type:name] [operator:=] [string:"granny smith"]

[punctuation.bracket:[[][type:fruit][punctuation.bracket:]]]
  [type:name] [operator:=] [string:"banana"]

  [punctuation.bracket:[[][type:fruit][punctuation.delimiter:.][type:variety][punctuation.bracket:]]]
    [type:name] [operator:=] [string:"plantain"]

[type:points] [operator:=] [punctuation.bracket:[] [punctuation.bracket:{] [type:x] [operator:=] [number:1][punctuation.delimiter:,] [type:y] [operator:=] [number:2][punctuation.delimiter:,] [type:z] [operator:=] [number:3] [punctuation.bracket:}][punctuation.delimiter:,]
           [punctuation.bracket:{] [type:x] [operator:=] [number:7][punctuation.delimiter:,] [type:y] [operator:=] [number:8][punctuation.delimiter:,] [type:z] [operator:=] [number:9] [punctuation.bracket:}][punctuation.delimiter:,]
           [punctuation.bracket:{] [type:x] [operator:=] [number:2][punctuation.delimiter:,] [type:y] [operator:=] [number:4][punctuation.delimiter:,] [type:z] [operator:=] [number:8] [punctuation.bracket:}] [punctuation.bracket:]]
