made the toml_generator example Not Shit

This commit is contained in:
Mark Gillard 2022-05-09 12:26:53 +03:00
parent 5eec04b951
commit 9e9b44dc14
3 changed files with 851 additions and 251 deletions

View File

@ -1,94 +1,578 @@
addition-used = false boiling-morning = 947
afraid-boiling-draconian = 1916-12-15T11:26:42+11:26 capable-adhesive = 09:20:44
boiling-whip = 12:23:17.000000129 cure = 0.4747 # broken
charming = 16771 deserted = 0.3939
close-unbecoming = 14:49:02 finger-surprise = true
contain-terrible-neck = 1928-11-07T06:30:56 flimsy-hook = { wistful-vengeful-complex = [ 2012-06-01T14:49:11+09:41 ] } # experience
creature = 0.4857 naughty = 1928-08-08T22:22:07+06:02
crowded-profuse-capable = 1932-05-28 remarkable-umbrella-flagrant = 1910-09-26
deserted-cross-creature = 1931-12-26T04:31:04 silky-ski-threatening = 'bore regret' # reject
deserted-heavy = [ 2014-02-08, 1984-03-16, 1910-08-05 ] soap-decisive = ''
fabulous = 0.3388 want = 0.4848
ghost-birds-legal = 1989-09-02
grandfather-weary = 10216
haircut-dreary-broken = 'unadvised rejoice lewd crime grandfather rice imperfect'
harm-snow = 0.6724
leather-aromatic-rabbit = false
license-harm = 1987-08-15T15:30:51+03:24
naughty-self-close = 1916-09-21T01:53:27-02:59
neck = 29653
neck-crime-wistful = 1998-12-07
rest-afraid = [
1912-06-23T07:00:07-07:46,
1910-11-17T13:10:34,
2014-08-03T04:37:12-06:36,
1966-11-22T18:08:23+06:10,
1985-03-01T08:11:38,
1976-09-04T20:46:46+00:29,
1964-05-18T20:13:27-01:25,
1961-10-14T11:03:51.000011555+06:23,
2005-07-13T02:57:15-01:46,
2007-02-01T17:09:54-08:45,
1952-03-06T09:15:04+01:44,
1962-12-25T23:00:11+04:28
]
rotten-best = 0.0325
run-curious = true
run-meaty = 04:40:20.000003312
scintillating-cream = 0.2604
sisters-playground = 'week spiritual pause insidious uptight'
spiritual-borrow-messy = 16:49:32
surprise-jail-babies = 2008-01-01
title-unbiased = 1958-10-08
unbecoming-scene-lewd = true
worried-spicy = 23:03:54
[contain] [[babies-lewd-relation.playground-snow-rotten]]
ghost = 0.2471 addition-cobweb = 0.8157
tank-lackadaisical = 1945-02-18T22:22:27+01:41 bore = 'acceptable stale adhesive stale curtain deserted'
close-hard-to-find = {} # finicky righteous
contain-train = { ball-license-babies = 22:44:01, string-cross = 0.4102, used-rest = 2014-09-05T17:02:28 }
flat-cheerful = {}
license-gleaming-laughable = 2009-06-03
rich-title-fuel = 'close tacky stale bake'
[contain.righteous-imperfect-remarkable] [babies-lewd-relation.playground-snow-rotten.aromatic-overjoyed]
ticket = 0.2412 whip-addition = {} # insidious
voyage = 'prefer silky night draconian three dreary decisive'
wilderness-draconian = 04:58:17
[contain.righteous-imperfect-remarkable.deeply-night-gold] [babies-lewd-relation.playground-snow-rotten.morning-adorable-gleaming] # deeply spicy
legal = 1981-07-04 legal-imperfect-worried = 06:23:39
righteous = [ false, true, false, false, true ] modern = 1968-01-21
wilderness = 1900-12-24 skip-sprout-zealous = ''
step-history = {}
[crime] [[babies-lewd-relation.playground-snow-rotten]]
boiling-excuse-incandescent = 31173 draconian-addition-threatening = 'behave experience impossible' # high-pitched unbecoming
flat-rejoice = 0.8682 stingy-equable-clean = 1975-03-17 # protective
furtive = 6866 versed-bake = 505
heavy-memory = 5545
lackadaisical-terrible-overjoyed = [ 'harm acceptable naughty pause', 'page anxious threatening lewd' ]
reject-aromatic = [ false, true, true, true, false, true ]
reject-naughty = 11229
scintillating-bake-harm = 0.8258
[license-bat] [[babies-lewd-relation.playground-snow-rotten]]
adorable-blind-string = 1961-08-14 night = 0.778
bat = 1939-10-28 prefer-torpid-ski = [ 0.6483, false, 1982-01-23T16:10:13-01:55 ]
blind-wilderness = 2004-07-14 soap = { fix = 2019-07-24T07:38:55+01:19, umbrella = 1947-02-13T18:02:46 }
soap-blind = 1964-05-23 # run prefer
used-ancient-delightful = false
worried-string = [ [ 'borrow unbecoming geese' ] ]
[rapid] # title tacky dull draconian lewd dreary
borrow = true # deeply anxious surprise torpid unite relation kindhearted
jail-weary-furtive = 'room' # skip dull room train experience
protective-sulky = 4737 # borrow satisfy scintillating neck impossible aromatic high-pitched
room-decisive-unbiased = 1998-11-01T12:23:58 # week respect ghost capable
soap = 1985-05-06 # satisfy deserted capable rabbit string threatening
sprout-rich = 0.6026
[rapid.clean-leather] [babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train] # best
blood-snow-mark = true hard-to-find = 'terrible'
equable = 0.2923 picture = 'ball history'
fabulous = 1979-07-24T00:53:39+06:22 step-decisive = 02:54:51
glorious-threatening = true
lewd-dull = 02:40:53.000027288
[run-overjoyed] [babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.crowded-protective] # leather unbecoming
creature-cheerful = 11071 blind = 1905-03-22
respect-history-anxious = 0.4637 clean-wilderness-leather = 09:45:08 # scatter
vessel = 'curious' impossible-ski = 536 # sprout
license = [ 1952-02-22T17:07:05.000005978+10:25, 1996-07-04T14:01:50 ] # stale stingy
surprise-fuel = { borrow-kindhearted = 1986-03-23T20:44:26+07:51 } # playground
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.playground-bore] # hook flagrant
addition-scatter-tacky = 02:17:38
close = { crown-respect-prefer = 03:27:27 }
incandescent = 10:04:01
march-dreary-room = true
mark-influence = true
picture-squirrel-surprise = 901
scene-rest-capable = [ 'torpid light attempt', 12:09:26.000008459 ] # addition
unbecoming-decisive = { bat = [ 1913-12-15T13:13:49, '' ], march-experience-tank = 1911-12-04T18:29:34-04:06, relation-remarkable = false }
whip-actually = [ [], [ 1996-05-28 ] ] # umbrella imperfect
# stale voyage run popcorn threatening bore
# fabulous respect chubby ancient wistful creature
# surprise prefer dull curious whip
# used blue-eyed furtive torpid selfish chubby nondescript
# curious complex geese jail
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.playground-bore.influence-scintillating-vengeful]]
babies-surprise-stingy = { surprise-contain-weary = 14:56:22 }
borrow = 1996-06-04 # ancient
fuel-miss-rich = [ 0.1081, 0.8454 ]
grandfather = false
haircut-versed-innocent = { boiling-innocent-blue-eyed = { blood-capable = 853, overjoyed-kindhearted = 0.2161 }, regret-ignore = 1905-02-06 }
step-insidious-adhesive = [ 1950-01-06, {}, false ]
unbiased = 784 # unite title
uptight-itch-curtain = false
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.playground-bore.influence-scintillating-vengeful]] # title relation
deadpan = 1958-06-22T18:31:51+10:16
fix = 0.3198 # heavy sulky
page-stingy-selfish = 1930-06-19T02:38:48.000016194
picture-lackadaisical = false # ghost
tank-contain = 'memory consist helpless'
versed-leather-ghost = 'influence wistful flat'
wretched-march = 'place enthusiastic decisive'
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.vengeful-worried]
capable-bake-room = 1988-10-22 # actually unite
cycle = false
high-pitched-vengeful = 0.0822
tank-license = 1953-02-12T14:43:36.00003003-00:35
threatening = 03:43:23
# vessel remarkable pumped step draconian scary
# pear selfish birds regret license stingy playground
# pear babies geese rice ignore
# run reject rapid reject
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.vengeful-worried.ghost-heavy] # respect
advise-bore = true
broken-lewd = true
scatter = 6 # neck
scintillating-regret-unadvised = 1936-07-25T17:22:32-05:14
versed-miss = 0.9028
weary = []
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.vengeful-worried.pumped-wistful]
contain-modern = 1923-09-23T01:22:09-02:20
curious-silky-borrow = 1959-11-06T04:37:54-02:58 # rotten
hilarious = 1903-12-02
insidious-tacky = 'harm spiritual laughable cycle influence messy enthusiastic'
wall-sprout-scary = 10:44:31
week-dull = {} # leather enthusiastic
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.vengeful-worried.unadvised-gold-unadvised]
attempt = 1957-09-11
flagrant-miss-tent = 0.8814
legal-versed-sprout = false
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.vengeful-worried.scene-naughty-spare]]
deserted-hilarious = {}
scatter-attempt = 'blind pear'
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.blue-eyed]] # blue-eyed run
borrow-run-mark = 0.5925
complex-profuse = 1907-02-26T23:54:24.000028223+10:35
crown-ticket = 'babies helpless'
dull = 1942-11-26
furtive = 816
respect = 20:07:11
string-cheerful-satisfy = 10:15:06
unbecoming-furtive-unite = 2008-09-02T16:34:04+08:40
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.blue-eyed.naughty-laughable-actually]]
legal-attempt-light = 1934-09-24T20:24:29-10:18
remarkable = 2020-10-02T19:53:38
three-cure-innocent = [ 0.2179 ]
versed-attempt = 1917-11-11
week-draconian = 797
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.blue-eyed.naughty-laughable-actually]] # skip
fabulous-ignore = 2005-08-06
messy = 242 # gusty worried
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.blue-eyed]]
fabulous = 0.8882
fix = 1928-07-04T15:46:25-06:46
rabbit-gold = 0.8035
royal = 1989-09-26T07:06:21-08:43 # complex borrow
terrible-capable-crowded = {}
unbecoming = 201
view = 12:19:31 # ignore
wilderness-tent-week = [ 384 ]
[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore]
afraid = 2010-08-09
ball = 17:51:13 # vengeful
blind-heavy = 'cheerful profuse innocent dreary' # legal hard-to-find
deserted-itch = 1984-03-02
skip-protective = 22:27:14
spare-view-hook = { flimsy-partner-fuel = 727, memory-blue-eyed = 0.9457 }
[[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore.skip-bake-incandescent]]
[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore.skip-bake-incandescent.influence-bat-actually]
broken-surprise = 21:24:24.000002983
leather-taboo-dull = { deeply = [ 813, 07:48:43.000014695 ], run-bake = 'march used scatter attempt close chubby innocent', tacky-party = 2005-02-06 } # cross
productive = { page = 361, three-tank-wistful = [ 2016-07-20, 13:18:08, 'light curtain morning rabbit harm sisters high-pitched' ] }
terrible-partner-room = 1915-06-07
train = 0.4414
# innocent string contain regret crime decisive wall
# spiritual naughty tacky stale attempt
# deadpan cure experience royal ancient cure voyage
# remarkable whip ski best haircut
[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore.skip-bake-incandescent.rice-skip-used]
bake-pear-train = 813 # vengeful
clean-ancient = 2012-11-13
complex = { naughty-deadpan-actually = 06:52:59, room-boiling = 0.1027 }
haircut = true # tacky prefer
rejoice-uptight = 0.6769
spicy = true
surprise = false # deadpan worried
threatening = 1978-02-04
title-acceptable = 1956-02-22
[[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore.skip-bake-incandescent.selfish]] # license incandescent
acceptable-decisive = 'skip flat gold influence morning unbiased'
deadpan = 0.7201 # finicky
dull-borrow = 1900-12-08 # dreary capable
hilarious-vengeful = {} # furtive
jail-consist-scatter = 0.1787
scene-vessel-complex = 1971-02-15
taboo-dull = 0.1922
taboo-ignore = 2019-04-22 # deadpan
unadvised-scene = 03:16:52
[[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore.skip-bake-incandescent]]
contain = false
legal-hilarious = []
rejoice = [ 1979-08-21T05:58:09-06:39, 'creature memory' ]
wall-flagrant-self = 0.4976
[[babies-lewd-relation.playground-snow-rotten.wall]] # protective
capable = [] # wilderness snow
clean = 1963-02-17
complex-umbrella = { familiar-innocent-consist = 175, stale = 07:03:20.00002881 }
creature-gleaming-sisters = 1984-05-19 # gleaming
crowded-squirrel = 1974-10-07
enthusiastic-three-tent = { capable-crowded = 1931-03-05T09:28:53-07:42, flat-broken-clean = {} }
light-snow = false # silky
wilderness-light-curious = 989 # actually
[babies-lewd-relation.playground-snow-rotten.wall.threatening]
chubby-overjoyed = 0.7252 # cheerful
cream-addition = 0.8832
familiar-high-pitched = 2013-11-10
laughable-geese-borrow = {}
overjoyed-bake = 1919-07-25
respect-umbrella = 1947-09-18 # charming
scene-rapid = false
surprise-delightful-stingy = { creature-pause = 0.9945, room-advise = '', tent-snow = '' } # rabbit
[[babies-lewd-relation.playground-snow-rotten.wall]]
crown-unbiased = 06:10:11 # jail
impossible-flimsy = 1992-09-13T01:39:28.000005689-05:33
rejoice = [ false ]
ski-ball-run = 'finicky haircut vessel spicy'
tacky = 9 # ignore
vengeful-rabbit = true # lackadaisical fix
# jail excuse enthusiastic cream complex
# train satisfy fix broken
# threatening boiling attempt train delightful cheerful vengeful
# rich actually fabulous contain deadpan harm curious
# fabulous scene furtive acceptable blood
# meaty used curious mark surprise curtain hard-to-find
[babies-lewd-relation.playground-snow-rotten.wall.terrible]
aromatic = 1937-12-11T00:23:12 # addition whip
glorious-wretched = { tank-adorable-gold = false, wilderness-cure-history = [ 1957-11-25T20:10:27.000016213+04:26, 2008-02-17, 20:40:09 ] }
squirrel-flagrant-boiling = { skip-room = { nondescript-morning-excuse = 1904-05-01T16:47:38+10:26 } }
surprise = 0.3398
worried = 'wretched experience ancient'
# week hilarious miss sprout
[babies-lewd-relation.playground-snow-rotten.wall.terrible.anxious] # crown tacky
fabulous-impossible = false # spare
fuel = 1908-09-09 # stale charming
license-ticket = [] # regret rejoice
sprout-mark-selfish = { page = 23:36:46.0000114, weary-deserted-history = [ true ] }
voyage = { meaty-helpless = 1980-04-20 }
# bore babies influence overjoyed advise light
# righteous remarkable leather stingy partner actually advise
# scary familiar deadpan gleaming adhesive broken experience
# mark unbiased popcorn squirrel close capable
# scintillating ski productive unbecoming haircut
# tank attempt scene rabbit high-pitched sprout
# gusty attempt flimsy ski pear terrible rice
[babies-lewd-relation.playground-snow-rotten.wall.terrible.boiling] # flimsy glorious
charming-royal = 04:14:31.000005876
curtain = 2005-08-17T06:45:00 # equable
draconian-clean-enthusiastic = 'history'
fix = 19:53:23
influence-week-reject = 581 # spiritual bore
self-protective = 2004-01-19T01:00:26.000016471+00:16
step-overjoyed-history = [ 'curious satisfy', [ 'overjoyed bat advise grandfather', 0.5762 ], 1947-06-28T09:03:40-08:39 ]
[babies-lewd-relation.playground-snow-rotten.wall.terrible.laughable-crime] # babies
umbrella = 1938-06-10
# furtive actually cross creature
# rest ghost mark selfish deadpan wistful torpid
[[babies-lewd-relation.playground-snow-rotten.wall.terrible.versed-overjoyed]] # hilarious
blind-familiar = 73 # gold respect
clean-train = { borrow-flagrant = 0.6438, unbecoming-fabulous-cheerful = false } # week
flimsy-pumped-umbrella = { string-boiling = { insidious-sisters = 10:33:25 }, weary = { behave-rejoice-threatening = 0.9151, protective-grandfather = 'haircut', view-regret-partner = false } } # unadvised finger
modern = 0.1885
place-cross = [ {} ]
tank = false
terrible-enthusiastic = 'hook' # train
threatening-best = 1908-09-20 # ticket
unbecoming-high-pitched = 09:47:03 # selfish productive
[[babies-lewd-relation.playground-snow-rotten.wall.terrible.versed-overjoyed]]
anxious = [] # equable
clean-satisfy = [ 0.8894, 153 ]
scene = 17:37:43 # clean ancient
# voyage wall deserted furtive rest aromatic
# cross flat cure productive cheerful
[[babies-lewd-relation.playground-snow-rotten.wall.terrible.versed-overjoyed]] # charming laughable
ball-deserted = 'voyage' # crown
deadpan-prefer-deeply = 104
fabulous-influence-wall = 0.0613
ignore = 1982-07-11
modern = { helpless-imperfect-leather = [ 'unbiased familiar place', 06:33:07.00002173, 0.5918 ], worried-crowded = false } # helpless want
party-complex-laughable = 11:39:52 # rice light
rich-three = 1929-11-07T03:53:23
royal-behave-babies = { fabulous-mark = [ 659, true ], unbecoming-messy = [] } # rich broken
spare = [ 1935-09-28T14:49:51-02:02 ]
[[babies-lewd-relation.playground-snow-rotten.wall]] # threatening
contain = [ 1918-09-06 ]
haircut-selfish-gusty = 976 # spicy stale
rotten = [ true, 'afraid overjoyed kindhearted threatening jail deadpan cure' ]
scene-charming-delightful = 'rice crown room'
scintillating-umbrella-crowded = true
selfish = 1986-11-28
stale = 0.3828
title-equable-partner = 508 # zealous
[[terrible]]
boiling-anxious-heavy = 1975-02-23
[terrible.capable-tent]
behave-ski-geese = true
borrow = true
capable-blue-eyed = 0.96
delightful-fabulous = 14:05:34
glorious = [ # finger spicy
{ best = 0.3935, cycle-acceptable = 05:55:20, spiritual-zealous-high-pitched = 'borrow actually taboo unadvised deadpan' },
false
]
hilarious = [ 0.0929 ]
spiritual-tank-sprout = 1969-10-20
week = false
wretched-step = { close-reject-excuse = 'taboo popcorn party', finger-soap-best = 0.5234 }
[terrible.capable-tent.contain-spiritual-squirrel]
delightful-torpid-three = 'rejoice'
haircut-regret-curious = 0.7427
morning-babies = 'hilarious voyage royal complex crown complex'
rest-impossible-borrow = '' # deserted behave
scatter-rest-impossible = { rich-close-actually = 878, vengeful = 0.2007 } # tank run
tacky-neck-cheerful = [ {}, [] ]
[terrible.capable-tent.week-week-zealous]
bat-zealous = 'morning lewd consist familiar morning crowded laughable' # uptight ski
delightful-tank = 1948-04-17 # charming
excuse = 1939-09-20T05:39:20.000019588+07:59
gold = 1901-05-16T23:53:21-05:25
royal = '' # remarkable
self = { train-birds-stingy = 'insidious scene gold', vessel = 0.5759 }
soap = { dull-history = false, scary = false }
taboo-ancient-itch = { gusty-snow-pear = { protective-scatter-high-pitched = 1996-11-03 }, rejoice-ignore-finger = 1918-11-22T19:37:38, squirrel-high-pitched-nondescript = 1995-07-17T04:54:13 }
umbrella-partner = []
[terrible.capable-tent.wilderness-aromatic]
attempt-night = 23:28:50 # borrow
cross-spare-hook = [ 1919-06-28T19:24:17-04:44, 08:23:11 ]
pear-helpless-profuse = true
productive-whip = 349
rapid-scary = 23:34:33
rotten-wistful = 1944-11-27
threatening = false # chubby
view-afraid = false
# neck draconian innocent innocent unbecoming advise
# voyage aromatic train gold broken harm memory
# fuel broken string unbecoming
# party party stale ski advise lewd
[terrible.capable-tent.wilderness-aromatic.tank]
cheerful-zealous-experience = 41
memory = 890 # deadpan
naughty = 1991-07-27T16:21:58+02:12
sisters = true # royal
tent-threatening-threatening = 0.1835
# attempt rabbit boiling train laughable wistful
# soap excuse spare neck babies unbiased fix
# legal unbecoming flagrant rest excuse uptight royal
[[terrible.capable-tent.wilderness-aromatic.tank.terrible]]
birds = [ true, 12:01:59, 1993-12-06 ]
scintillating-vengeful = 'snow party train unbiased innocent'
sulky = 'popcorn'
[[terrible.capable-tent.wilderness-aromatic.tank.terrible]]
wistful-innocent-morning = 482
[[terrible.capable-tent.wilderness-aromatic.tank.terrible]]
adorable = [ false, [ 1986-08-22T06:58:04, 211 ] ]
crowded = [ 06:00:22, 15:39:55 ]
dreary-decisive = 1937-08-23
familiar-taboo-unite = false
glorious = true # room messy
license-anxious-prefer = ''
pumped = 2010-02-06T18:30:43-07:27
royal = 1949-03-01T15:27:36
[[terrible.capable-tent.wilderness-aromatic.birds]]
hook-dull-familiar = 2020-05-09T10:12:18-00:21
imperfect = false
pear = 'vengeful worried self close worried'
[[terrible.capable-tent.wilderness-aromatic.birds]]
bore-unite-flimsy = { finicky-legal-view = [ 749 ] }
grandfather-unbiased = 'modern delightful actually cream' # versed
haircut-soap = 2004-05-01T21:12:27+01:34
innocent-crime-unbiased = 'three flimsy'
lewd-adorable = 05:25:31 # best fuel
neck = 17:07:42
rabbit-versed = 11:23:17.000021208
step-overjoyed-anxious = 0.2862
weary-creature-itch = [ 2012-05-13T05:12:55+10:38, 1983-01-06T06:23:03-04:47 ] # skip ticket
[[terrible.capable-tent.wilderness-aromatic.birds]]
hook-rest-impossible = [ 21:02:47.000007906, 0.9952, [ 1977-05-22, true, true ] ]
sisters-rotten = 276
[terrible.capable-tent.wilderness-aromatic.birds.naughty-blind]
bake-scatter-cross = [
234,
{ attempt-selfish-ghost = 08:43:45, draconian-ski-scintillating = 1911-03-24T12:01:06-01:20, dreary = 266 },
'innocent broken equable adhesive spiritual title respect'
] # hard-to-find protective
ticket-enthusiastic-delightful = [ 428, 12:49:26, [ 07:10:40, 'neck unadvised finicky stale rest', true ] ]
[terrible.capable-tent.wilderness-aromatic.birds.popcorn-cross-unbecoming]
capable-best = [ { fabulous = 0.0328 }, 1959-07-11T18:30:11-10:19, [ false, 1943-02-01T14:46:20+04:32 ] ]
contain = { harm-babies-actually = 1927-05-26, lackadaisical-cobweb-ticket = { license-stale = true }, zealous = 14:34:49 }
dreary-rejoice = false
ignore-cobweb = true
jail = false
legal = {}
[terrible.capable-tent.wilderness-aromatic.birds.rotten]
innocent = 2012-07-13
stingy = 12:22:46
wilderness = true
[[terrible.capable-tent.taboo-snow-fix]]
consist = 0.5019
deadpan-title-equable = []
enthusiastic = 'jail step deserted' # neck
high-pitched-ski-jail = {}
lackadaisical-page = 2011-04-21
leather-grandfather-lackadaisical = 'kindhearted kindhearted rich babies' # umbrella
relation-high-pitched = 1995-11-05 # blue-eyed cream
self-deeply-crown = 0.6038 # pumped relation
spare-behave-royal = 1955-01-15T04:19:40.000024836-03:27
[terrible.history-wistful-insidious]
deadpan-run = 1961-12-04T21:19:22
impossible-itch-hilarious = []
wall-silky-zealous = false
[terrible.history-wistful-insidious.broken-bore]
decisive-spicy = 01:43:10
finger-deeply = 03:52:20
jail = [ 'week title curtain week snow' ]
jail-borrow = true # flimsy
kindhearted-tent-harm = 1979-06-03
playground-unbecoming = 0.3341
used-unbecoming-cobweb = 0.7474
[terrible.history-wistful-insidious.broken-bore.draconian.silky] # afraid unbiased
bat-vessel-enthusiastic = 1988-05-20T20:51:44+00:23
decisive-close-rest = 1979-07-27T21:30:02-07:46
messy = 0.2638 # excuse
stingy-self-rejoice = 0.0179
tacky-mark = 'wilderness furtive incandescent delightful close rotten' # best
vessel = 2006-06-28T20:54:53 # umbrella
[[terrible.history-wistful-insidious.cobweb-finicky]]
attempt-selfish-skip = []
ball-ball = 0.1378 # aromatic best
blind-curtain = 06:26:13
fuel-fix-geese = 1918-06-21T14:07:38
high-pitched-three = 16:58:45
innocent-rabbit = 'train'
miss = 'glorious chubby cobweb skip dreary scene ball'
morning = 'unbiased ticket deeply anxious skip terrible dreary'
playground = 'sisters run' # scene cycle
[[terrible.history-wistful-insidious.cobweb-finicky]]
fabulous = [ 'flimsy spare tent rejoice curtain mark', true ]
rabbit = {}
ticket = false
# unadvised sulky acceptable righteous broken profuse terrible
# ancient crown gleaming wistful ball rest
# picture deadpan mark flimsy scatter decisive
# close memory skip bat tent haircut
# run attempt morning vengeful delightful legal itch
[terrible.productive]
itch = ''
[[terrible]]
babies-sisters = 62
boiling = { deserted = 'adorable', lackadaisical-wilderness = 671 }
decisive-itch = 1943-07-24 # cross rest
ignore-best = [ 1916-02-18T15:56:45+02:04 ]
overjoyed = 17:49:57
place-familiar = true
sisters = []
used-rotten = 1985-08-10T07:39:42+05:17
[[terrible.regret-sisters-terrible]]
[[terrible.regret-sisters-terrible]]
bake = 0.8399
cross = 427
leather = [ 02:56:44.000030194, 1974-09-24 ]
nondescript-attempt-bore = 1900-07-03T04:56:46.000004029+07:22
rejoice = true
# geese snow relation worried
[terrible.regret-sisters-terrible.ancient]
boiling-messy-stingy = { fabulous-wretched-mark = [], wall-familiar-furtive = 2003-09-16 }
cobweb-fix = 1988-05-07T07:01:15-10:34
excuse-gleaming = { familiar = [ true, 1929-01-01T13:47:11+02:44, 04:04:47.00000846 ] } # heavy cheerful
fix-acceptable-string = 15:39:49.000006614 # actually imperfect
hard-to-find = false
imperfect = 1960-11-24T22:00:37 # overjoyed
rabbit-terrible-innocent = [] # threatening
rabbit-train-ski = 0.6229 # profuse
wilderness-advise = 1982-08-20
[[terrible.regret-sisters-terrible.ancient.umbrella-worried]]
afraid = true # dreary
[terrible.regret-sisters-terrible.ancient.umbrella-worried.uptight-sisters-leather]
bore-tank-afraid = true # wretched curtain
[[terrible.regret-sisters-terrible.terrible-scene-surprise]]
prefer-legal = 428
relation-license-partner = [ true ] # playground
[[terrible.regret-sisters-terrible]]
glorious-adorable = 206 # curtain
grandfather = 76
ignore-cycle = 1956-07-22T01:39:24+03:39
messy = {} # draconian
[[terrible.regret-sisters-terrible.memory]] # curious memory
kindhearted-anxious-rotten = true
march-cheerful-view = { best-rice-want = 1978-08-26T22:05:21-00:49, spiritual = 1951-01-22T09:45:33-07:27, vessel-insidious = true } # gold
mark-sulky = 0.0597
pear = 1986-10-18T13:04:43-01:01 # three itch
remarkable-wistful = 1901-10-01
scatter-furtive-versed = 01:16:52
tank-reject = [ 12:09:18, {} ] # wall finger
[[terrible.regret-sisters-terrible.memory]]
babies-memory = [ { decisive = 15:35:50.000020612, stale-spicy = 0.1702 } ] # adhesive
blue-eyed-aromatic = 'curious birds terrible crowded'
close-cobweb-satisfy = [ {} ]
license = 0.9682 # lewd
reject-spiritual-taboo = ''
sulky-afraid = false
train-ghost-week = [ [ 0.6958, true ], 1942-02-15 ]
[[terrible.regret-sisters-terrible.memory]]
imperfect = [ 0.0689 ] # harm
three-string-tacky = 0.2109

View File

@ -18,6 +18,7 @@
#include <cstdlib> #include <cstdlib>
#include <ctime> #include <ctime>
#include <cassert>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include <string> #include <string>

View File

@ -12,195 +12,310 @@ using namespace std::string_view_literals;
namespace namespace
{ {
inline constexpr auto words = std::array{ namespace random
"acceptable"sv, "contain"sv, "ghost"sv, "mark"sv, "respect"sv, "taboo"sv,
"actually"sv, "cream"sv, "gleaming"sv, "meaty"sv, "rest"sv, "tacky"sv,
"addition"sv, "creature"sv, "glorious"sv, "memory"sv, "rice"sv, "tank"sv,
"adhesive"sv, "crime"sv, "gold"sv, "messy"sv, "rich"sv, "tent"sv,
"adorable"sv, "cross"sv, "grandfather"sv, "miss"sv, "righteous"sv, "terrible"sv,
"advise"sv, "crowded"sv, "gusty"sv, "modern"sv, "room"sv, "threatening"sv,
"afraid"sv, "crown"sv, "haircut"sv, "morning"sv, "rotten"sv, "three"sv,
"ancient"sv, "cure"sv, "hard-to-find"sv, "naughty"sv, "royal"sv, "ticket"sv,
"anxious"sv, "curious"sv, "harm"sv, "neck"sv, "run"sv, "title"sv,
"aromatic"sv, "curtain"sv, "heavy"sv, "night"sv, "satisfy"sv, "torpid"sv,
"attempt"sv, "cycle"sv, "helpless"sv, "nondescript"sv, "scary"sv, "train"sv,
"babies"sv, "deadpan"sv, "high-pitched"sv, "overjoyed"sv, "scatter"sv, "umbrella"sv,
"bake"sv, "decisive"sv, "hilarious"sv, "page"sv, "scene"sv, "unadvised"sv,
"ball"sv, "deeply"sv, "history"sv, "partner"sv, "scintillating"sv, "unbecoming"sv,
"bat"sv, "delightful"sv, "hook"sv, "party"sv, "self"sv, "unbiased"sv,
"behave"sv, "deserted"sv, "ignore"sv, "pause"sv, "selfish"sv, "unite"sv,
"best"sv, "draconian"sv, "imperfect"sv, "pear"sv, "silky"sv, "uptight"sv,
"birds"sv, "dreary"sv, "impossible"sv, "picture"sv, "sisters"sv, "used"sv,
"blind"sv, "dull"sv, "incandescent"sv, "place"sv, "ski"sv, "vengeful"sv,
"blood"sv, "enthusiastic"sv, "influence"sv, "playground"sv, "skip"sv, "versed"sv,
"blue-eyed"sv, "equable"sv, "innocent"sv, "popcorn"sv, "snow"sv, "vessel"sv,
"boiling"sv, "excuse"sv, "insidious"sv, "prefer"sv, "soap"sv, "view"sv,
"bore"sv, "experience"sv, "itch"sv, "productive"sv, "spare"sv, "voyage"sv,
"borrow"sv, "fabulous"sv, "jail"sv, "profuse"sv, "spicy"sv, "wall"sv,
"broken"sv, "familiar"sv, "kindhearted"sv, "protective"sv, "spiritual"sv, "want"sv,
"capable"sv, "finger"sv, "lackadaisical"sv, "pumped"sv, "sprout"sv, "weary"sv,
"charming"sv, "finicky"sv, "laughable"sv, "rabbit"sv, "squirrel"sv, "week"sv,
"cheerful"sv, "fix"sv, "leather"sv, "rapid"sv, "stale"sv, "whip"sv,
"chubby"sv, "flagrant"sv, "legal"sv, "regret"sv, "step"sv, "wilderness"sv,
"clean"sv, "flat"sv, "lewd"sv, "reject"sv, "stingy"sv, "wistful"sv,
"close"sv, "flimsy"sv, "license"sv, "rejoice"sv, "string"sv, "worried"sv,
"cobweb"sv, "fuel"sv, "light"sv, "relation"sv, "sulky"sv, "wretched"sv,
"complex"sv, "furtive"sv, "march"sv, "remarkable"sv, "surprise"sv, "zealous"sv,
"consist"sv, "geese"sv
};
template <typename T>
[[nodiscard]] static T rand(T excl_max) noexcept
{ {
return static_cast<T>(static_cast<T>(std::rand()) % excl_max); inline constexpr std::string_view words[] = {
} "acceptable"sv, "contain"sv, "ghost"sv, "mark"sv, "respect"sv, "taboo"sv,
"actually"sv, "cream"sv, "gleaming"sv, "meaty"sv, "rest"sv, "tacky"sv,
"addition"sv, "creature"sv, "glorious"sv, "memory"sv, "rice"sv, "tank"sv,
"adhesive"sv, "crime"sv, "gold"sv, "messy"sv, "rich"sv, "tent"sv,
"adorable"sv, "cross"sv, "grandfather"sv, "miss"sv, "righteous"sv, "terrible"sv,
"advise"sv, "crowded"sv, "gusty"sv, "modern"sv, "room"sv, "threatening"sv,
"afraid"sv, "crown"sv, "haircut"sv, "morning"sv, "rotten"sv, "three"sv,
"ancient"sv, "cure"sv, "hard-to-find"sv, "naughty"sv, "royal"sv, "ticket"sv,
"anxious"sv, "curious"sv, "harm"sv, "neck"sv, "run"sv, "title"sv,
"aromatic"sv, "curtain"sv, "heavy"sv, "night"sv, "satisfy"sv, "torpid"sv,
"attempt"sv, "cycle"sv, "helpless"sv, "nondescript"sv, "scary"sv, "train"sv,
"babies"sv, "deadpan"sv, "high-pitched"sv, "overjoyed"sv, "scatter"sv, "umbrella"sv,
"bake"sv, "decisive"sv, "hilarious"sv, "page"sv, "scene"sv, "unadvised"sv,
"ball"sv, "deeply"sv, "history"sv, "partner"sv, "scintillating"sv, "unbecoming"sv,
"bat"sv, "delightful"sv, "hook"sv, "party"sv, "self"sv, "unbiased"sv,
"behave"sv, "deserted"sv, "ignore"sv, "pause"sv, "selfish"sv, "unite"sv,
"best"sv, "draconian"sv, "imperfect"sv, "pear"sv, "silky"sv, "uptight"sv,
"birds"sv, "dreary"sv, "impossible"sv, "picture"sv, "sisters"sv, "used"sv,
"blind"sv, "dull"sv, "incandescent"sv, "place"sv, "ski"sv, "vengeful"sv,
"blood"sv, "enthusiastic"sv, "influence"sv, "playground"sv, "skip"sv, "versed"sv,
"blue-eyed"sv, "equable"sv, "innocent"sv, "popcorn"sv, "snow"sv, "vessel"sv,
"boiling"sv, "excuse"sv, "insidious"sv, "prefer"sv, "soap"sv, "view"sv,
"bore"sv, "experience"sv, "itch"sv, "productive"sv, "spare"sv, "voyage"sv,
"borrow"sv, "fabulous"sv, "jail"sv, "profuse"sv, "spicy"sv, "wall"sv,
"broken"sv, "familiar"sv, "kindhearted"sv, "protective"sv, "spiritual"sv, "want"sv,
"capable"sv, "finger"sv, "lackadaisical"sv, "pumped"sv, "sprout"sv, "weary"sv,
"charming"sv, "finicky"sv, "laughable"sv, "rabbit"sv, "squirrel"sv, "week"sv,
"cheerful"sv, "fix"sv, "leather"sv, "rapid"sv, "stale"sv, "whip"sv,
"chubby"sv, "flagrant"sv, "legal"sv, "regret"sv, "step"sv, "wilderness"sv,
"clean"sv, "flat"sv, "lewd"sv, "reject"sv, "stingy"sv, "wistful"sv,
"close"sv, "flimsy"sv, "license"sv, "rejoice"sv, "string"sv, "worried"sv,
"cobweb"sv, "fuel"sv, "light"sv, "relation"sv, "sulky"sv, "wretched"sv,
"complex"sv, "furtive"sv, "march"sv, "remarkable"sv, "surprise"sv, "zealous"sv,
"consist"sv, "geese"sv
};
template <typename T> [[nodiscard]] static bool boolean() noexcept
[[nodiscard]] static T rand(T incl_min, T excl_max) noexcept
{
return static_cast<T>(incl_min + rand(excl_max - incl_min));
}
static auto rand_date() noexcept
{
return toml::date{ rand(uint16_t{ 1900 }, uint16_t{ 2021 }),
rand(uint8_t{ 1 }, uint8_t{ 13 }),
rand(uint8_t{ 1 }, uint8_t{ 29 }) };
}
static auto rand_time() noexcept
{
return toml::time{ rand(uint8_t{ 24 }),
rand(uint8_t{ 60 }),
rand(uint8_t{ 60 }),
rand(100) > 80 ? rand(1000000000u) : 0u };
}
static auto rand_string(size_t word_count, char sep = ' ') noexcept
{
std::string val;
while (word_count-- > 0u)
{ {
if (!val.empty()) return std::rand() % 2 == 0;
val += sep; }
val.append(words[rand(words.size())]);
template <typename T>
[[nodiscard]] static T integer(T excl_max) noexcept
{
return static_cast<T>(static_cast<T>(std::rand()) % excl_max);
}
template <typename T>
[[nodiscard]] static T integer(T incl_min, T excl_max) noexcept
{
return static_cast<T>(incl_min + integer(excl_max - incl_min));
}
[[nodiscard]] static toml::date date() noexcept
{
return toml::date{ integer(1900, 2021), //
integer(1, 13),
integer(1, 29) };
}
[[nodiscard]] static toml::time time() noexcept
{
return toml::time{ integer(24), //
integer(60),
integer(60),
integer(100) > 80 ? integer(1000000000u) : 0u };
}
[[nodiscard]] static toml::time_offset time_offset() noexcept
{
return toml::time_offset{ integer(-11, 12), integer(-45, +46) };
}
[[nodiscard]] static toml::date_time date_time() noexcept
{
return integer(100) >= 75 ? toml::date_time{ date(), time() }
: toml::date_time{ date(), time(), time_offset() };
}
[[nodiscard]] static std::string_view word() noexcept
{
return words[integer(std::size(words))];
}
[[nodiscard]] static std::string string(size_t word_count, char sep = ' ')
{
std::string val;
while (word_count-- > 0u)
{
if (!val.empty())
val += sep;
val.append(word());
}
return val;
}
[[nodiscard]] static std::string key()
{
return random::string(random::integer(1u, 4u), '-');
}
[[nodiscard]] static bool chance(float val) noexcept
{
val = (val < 0.0f ? 0.0f : (val > 1.0f ? 1.0f : val)) * 1000.0f;
return static_cast<float>(integer(0, 1000)) <= val;
}
}
template <typename T>
static auto add_to(toml::table& tbl, T&& val) -> toml::inserted_type_of<T&&>&
{
while (true)
{
auto key = random::key();
auto it = std::as_const(tbl).lower_bound(key);
if (it == tbl.cend() || it->first != key)
{
return *tbl.emplace_hint(it, std::move(key), static_cast<T&&>(val))
->second.template as<toml::inserted_type_of<T&&>>();
}
}
}
template <typename T>
static auto add_to(toml::array& arr, T&& val) -> toml::inserted_type_of<T&&>&
{
return arr.emplace_back(static_cast<T&&>(val));
}
template <typename Container>
static void add_value_to(Container& container)
{
static_assert(toml::is_container<Container>);
switch (rand() % 7)
{
case 0: add_to(container, random::string(random::integer(8u))); break;
case 1: add_to(container, random::integer(1000)); break;
case 2: add_to(container, random::integer(10001) / 10000.0); break;
case 3: add_to(container, random::boolean()); break;
case 4: add_to(container, random::date()); break;
case 5: add_to(container, random::time()); break;
case 6: add_to(container, random::date_time()); break;
default: break;
}
}
static constexpr int max_inline_nesting = 2;
static constexpr int default_max_inline_values = 4;
template <typename Container>
static void populate_inline_container(Container& container,
int& budget,
int inline_nesting = 0,
int max_values = default_max_inline_values)
{
static_assert(toml::is_container<Container>);
auto values = random::integer(max_values);
while (budget && values)
{
// inline array/table
if (inline_nesting < max_inline_nesting && random::chance(0.25f))
{
// array
if (random::boolean())
{
auto& arr = add_to(container, toml::array{});
populate_inline_container(arr, budget, inline_nesting + 1, default_max_inline_values);
}
// table
else
{
auto& tbl = add_to(container, toml::table{});
tbl.is_inline(true);
populate_inline_container(tbl, budget, inline_nesting + 1, default_max_inline_values);
}
}
// regular value
else
{
add_value_to(container);
budget--;
}
values--;
}
}
static constexpr int max_top_level_nesting = 5;
static constexpr int max_array_of_tables_children = 4;
static constexpr int max_table_children = 4;
static void populate_table(toml::table& tbl, int& budget, int nesting = 0)
{
assert(!tbl.is_inline());
// do simple values + inline tables/arrays first
populate_inline_container(tbl, budget, 0, 10);
// add a nested array-of-tables
if (budget && nesting < max_top_level_nesting && random::chance(0.33f))
{
auto& arr = add_to(tbl, toml::array{});
// note we don't subtract from the budget for the outer array;
// it's "invisible" from a topological perspective when reading the output TOML
auto children = random::integer(1, max_array_of_tables_children);
while (budget && children)
{
auto& sub_tbl = add_to(arr, toml::table{});
budget--;
children--;
populate_table(sub_tbl, budget, nesting + 1);
}
}
// add nested tables
if (budget && nesting < max_top_level_nesting && random::chance(0.33f))
{
auto children = random::integer(1, max_table_children);
while (budget && children)
{
auto& sub_tbl = add_to(tbl, toml::table{});
budget--;
children--;
populate_table(sub_tbl, budget, nesting + 1);
}
} }
return val;
} }
} }
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
int node_budget{}; int budget{};
bool comments = true;
for (int i = 1; i < argc; i++) for (int i = 1; i < argc; i++)
{ {
std::stringstream ss{ argv[i] }; const auto arg = std::string_view{ argv[i] };
int nodes; if (arg == "--nocomments"sv)
if ((ss >> nodes)) comments = false;
node_budget += nodes; else
{
std::istringstream ss{ std::string(arg) };
int num;
if ((ss >> num))
budget += num;
else
{
std::cerr << "Unknown argument '"sv << arg << "'\n";
return 1;
}
}
} }
if (node_budget <= 0) if (budget <= 0)
node_budget = 100; budget = 100;
toml::table root; toml::table root;
std::vector<toml::node*> tree; while (budget > 0)
tree.push_back(&root); populate_table(root, budget);
constexpr size_t max_depth = 10u;
int container_min_values = 10;
bool in_arr = false;
const auto add = [&](auto&& val) noexcept -> auto& if (comments)
{ {
using value_ref = decltype(val); std::stringstream src;
using value_type = std::remove_reference_t<value_ref>; src << root;
using node_type = toml::inserted_type_of<value_type>;
toml::node* new_node{}; std::string line;
std::ostringstream dest;
// we're adding an element to an array while (std::getline(src, line))
if (auto arr = tree.back()->as_array())
{ {
arr->push_back(std::forward<value_ref>(val)); if (line.empty())
new_node = &arr->back(); {
} // occasionally dump a paragraph comment at the top-level of the document
if (random::chance(0.20f))
// we're adding a new kvp to a table {
else auto lines = random::integer(1, 8);
{ while (lines--)
auto& table = tree.back()->ref<toml::table>(); dest << "\n# "sv << random::string(random::integer(4u, 8u));
dest << "\n"sv;
const auto it = }
table.insert_or_assign(rand_string(rand<size_t>(1u, 4u), '-'), std::forward<value_ref>(val)); }
new_node = &it.first->second;
}
// we added a new array or table, so now we need to step into it
if constexpr (toml::is_container<value_type>)
{
tree.push_back(new_node);
container_min_values = rand(1, 4);
in_arr = toml::is_array<value_type>;
if constexpr (toml::is_array<value_type>)
tree.back()->as_array()->reserve(static_cast<size_t>(container_min_values));
}
else
container_min_values--;
node_budget--;
return *new_node->as<node_type>();
};
while (node_budget)
{
if (!in_arr && rand(100) >= 75)
{
if (container_min_values <= 0 && tree.size() < max_depth)
add(toml::table{}).is_inline(tree.size() >= max_depth - 2u && rand(100) >= 85);
}
else
{
toml::node_type new_node_type;
if (auto arr = tree.back()->as_array(); arr && !arr->empty())
new_node_type = arr->front().type();
else else
new_node_type = static_cast<toml::node_type>((rand() % 8) + 2);
switch (new_node_type)
{ {
case toml::node_type::array: dest << line;
if (container_min_values <= 0 && tree.size() < max_depth)
add(toml::array{});
break;
case toml::node_type::string: add(rand_string(rand<size_t>(8u))); break; // occasionally add short comments at end of non-blank lines
if (random::chance(0.30f))
case toml::node_type::integer: add(rand()); break; dest << " # "sv << random::string(random::integer(1u, 3u));
case toml::node_type::floating_point: add(rand(10001u) / 10000.0); break;
case toml::node_type::boolean: add(!rand(2u)); break;
case toml::node_type::date: add(rand_date()); break;
case toml::node_type::time: add(rand_time()); break;
case toml::node_type::date_time:
add(rand(100) >= 75
? toml::date_time{ rand_date(), rand_time() }
: toml::date_time{ rand_date(),
rand_time(),
toml::time_offset{ rand<int8_t>(-11, 12), rand<int8_t>(-45, +46) } });
break;
}
if (container_min_values <= 0 && tree.size() >= 2u && rand(100) >= 85)
{
tree.pop_back();
in_arr = !tree.empty() && tree.back()->type() == toml::node_type::array;
} }
dest << "\n"sv;
} }
std::cout << dest.str();
}
else
{
std::cout << root << "\n";
} }
std::cout << root << "\n";
return 0; return 0;
} }