implement game configuration file

this integrates https://github.com/cktan/tomlc99 into the repo as a dependency
This commit is contained in:
2024-09-30 21:13:58 -03:00
committed by veclavtalica
parent ec15d8ec4b
commit 57fe5e8946
165 changed files with 4797 additions and 92 deletions

1
third-party/tomlc99/stdex/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/*.out

15
third-party/tomlc99/stdex/RUN.sh vendored Normal file
View File

@ -0,0 +1,15 @@
rm -f *.out
for i in *.toml; do
echo -n $i
../toml_cat $i >& $i.out
if [ -f $i.res ]; then
if $(diff $i.out $i.res >& /dev/null); then
echo " [OK]"
else
echo " [FAILED]"
fi
else
echo " [?????]"
fi
done

13
third-party/tomlc99/stdex/arr1.toml vendored Normal file
View File

@ -0,0 +1,13 @@
integers = [ 1, 2, 3 ]
colors = [ "red", "yellow", "green" ]
nested_arrays_of_ints = [ [ 1, 2 ], [3, 4, 5] ]
nested_mixed_array = [ [ 1, 2 ], ["a", "b", "c"] ]
string_array = [ "all", 'strings', """are the same""", '''type''' ]
# Mixed-type arrays are allowed
numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ]
contributors = [
"Foo Bar <foo@example.com>",
{ name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" }
]

56
third-party/tomlc99/stdex/arr1.toml.res vendored Normal file
View File

@ -0,0 +1,56 @@
{
integers = [
1,
2,
3,
],
colors = [
"red",
"yellow",
"green",
],
nested_arrays_of_ints = [
[
1,
2,
],
[
3,
4,
5,
],
],
nested_mixed_array = [
[
1,
2,
],
[
"a",
"b",
"c",
],
],
string_array = [
"all",
"strings",
"are the same",
"type",
],
numbers = [
0.100000,
0.200000,
0.500000,
1,
2,
5,
],
contributors = [
"Foo Bar <foo@example.com>",
{
name = "Baz Qux",
email = "bazqux@example.com",
url = "https://example.com/bazqux",
},
],
}

8
third-party/tomlc99/stdex/arr2.toml vendored Normal file
View File

@ -0,0 +1,8 @@
integers2 = [
1, 2, 3
]
integers3 = [
1,
2, # this is ok
]

11
third-party/tomlc99/stdex/arr2.toml.res vendored Normal file
View File

@ -0,0 +1,11 @@
{
integers2 = [
1,
2,
3,
],
integers3 = [
1,
2,
],
}

11
third-party/tomlc99/stdex/arrtab1.toml vendored Normal file
View File

@ -0,0 +1,11 @@
[[products]]
name = "Hammer"
sku = 738594937
[[products]] # empty table within the array
[[products]]
name = "Nail"
sku = 284758393
color = "gray"

View File

@ -0,0 +1,15 @@
{
products = [
{
name = "Hammer",
sku = 738594937,
},
{
},
{
name = "Nail",
sku = 284758393,
color = "gray",
},
],
}

19
third-party/tomlc99/stdex/arrtab2.toml vendored Normal file
View File

@ -0,0 +1,19 @@
[[fruits]]
name = "apple"
[fruits.physical] # subtable
color = "red"
shape = "round"
[[fruits.varieties]] # nested array of tables
name = "red delicious"
[[fruits.varieties]]
name = "granny smith"
[[fruits]]
name = "banana"
[[fruits.varieties]]
name = "plantain"

View File

@ -0,0 +1,27 @@
{
fruits = [
{
name = "apple",
varieties = [
{
name = "red delicious",
},
{
name = "granny smith",
},
],
physical = {
color = "red",
shape = "round",
},
},
{
name = "banana",
varieties = [
{
name = "plantain",
},
],
},
],
}

View File

@ -0,0 +1,8 @@
# INVALID TOML DOC
[fruit.physical] # subtable, but to which parent element should it belong?
color = "red"
shape = "round"
[[fruit]] # parser must throw an error upon discovering that "fruit" is
# an array rather than a table
name = "apple"

View File

@ -0,0 +1 @@
ERROR: line 6: key exists

View File

@ -0,0 +1,4 @@
# INVALID TOML DOC
fruits = []
[[fruits]] # Not allowed

View File

@ -0,0 +1 @@
ERROR: line 4: array mismatch

11
third-party/tomlc99/stdex/arrtab5.toml vendored Normal file
View File

@ -0,0 +1,11 @@
# INVALID TOML DOC
[[fruits]]
name = "apple"
[[fruits.varieties]]
name = "red delicious"
# INVALID: This table conflicts with the previous array of tables
[fruits.varieties]
name = "granny smith"

View File

@ -0,0 +1 @@
ERROR: line 9: key exists

14
third-party/tomlc99/stdex/arrtab6.toml vendored Normal file
View File

@ -0,0 +1,14 @@
# INVALID TOML DOC
[[fruits]]
name = "apple"
[[fruits.varieties]]
name = "red delicious"
[fruits.physical]
color = "red"
shape = "round"
# INVALID: This array of tables conflicts with the previous table
[[fruits.physical]]
color = "green"

View File

@ -0,0 +1 @@
ERROR: line 13: key exists

View File

@ -0,0 +1,3 @@
points = [ { x = 1, y = 2, z = 3 },
{ x = 7, y = 8, z = 9 },
{ x = 2, y = 4, z = 8 } ]

View File

@ -0,0 +1,19 @@
{
points = [
{
x = 1,
y = 2,
z = 3,
},
{
x = 7,
y = 8,
z = 9,
},
{
x = 2,
y = 4,
z = 8,
},
],
}

3
third-party/tomlc99/stdex/bool1.toml vendored Normal file
View File

@ -0,0 +1,3 @@
bool1 = true
bool2 = false

View File

@ -0,0 +1,4 @@
{
bool1 = true,
bool2 = false,
}

View File

@ -0,0 +1,3 @@
# This is a full-line comment
key = "value" # This is a comment at the end of a line
another = "# This is not a comment"

View File

@ -0,0 +1,4 @@
{
key = "value",
another = "# This is not a comment",
}

13
third-party/tomlc99/stdex/float1.toml vendored Normal file
View File

@ -0,0 +1,13 @@
# fractional
flt1 = +1.0
flt2 = 3.1415
flt3 = -0.01
# exponent
flt4 = 5e+22
flt5 = 1e06
flt6 = -2E-2
# both
flt7 = 6.626e-34

View File

@ -0,0 +1,9 @@
{
flt1 = 1.000000,
flt2 = 3.141500,
flt3 = -0.010000,
flt4 = 49999999999999995805696.000000,
flt5 = 1000000.000000,
flt6 = -0.020000,
flt7 = 0.000000,
}

1
third-party/tomlc99/stdex/float2.toml vendored Normal file
View File

@ -0,0 +1 @@
invalid_float_1 = .7

View File

@ -0,0 +1,2 @@
{
ERROR: unable to decode value in table

2
third-party/tomlc99/stdex/float3.toml vendored Normal file
View File

@ -0,0 +1,2 @@
invalid_float_2 = 7.

View File

@ -0,0 +1,2 @@
{
ERROR: unable to decode value in table

1
third-party/tomlc99/stdex/float4.toml vendored Normal file
View File

@ -0,0 +1 @@
invalid_float_3 = 3.e+20

View File

@ -0,0 +1,2 @@
{
ERROR: unable to decode value in table

1
third-party/tomlc99/stdex/float5.toml vendored Normal file
View File

@ -0,0 +1 @@
flt8 = 224_617.445_991_228

View File

@ -0,0 +1,3 @@
{
flt8 = 224617.445991,
}

10
third-party/tomlc99/stdex/float6.toml vendored Normal file
View File

@ -0,0 +1,10 @@
# infinity
sf1 = inf # positive infinity
sf2 = +inf # positive infinity
sf3 = -inf # negative infinity
# not a number
sf4 = nan # actual sNaN/qNaN encoding is implementation-specific
sf5 = +nan # same as `nan`
sf6 = -nan # valid, actual encoding is implementation-specific

View File

@ -0,0 +1,8 @@
{
sf1 = inf,
sf2 = inf,
sf3 = -inf,
sf4 = nan,
sf5 = nan,
sf6 = nan,
}

View File

@ -0,0 +1,3 @@
name = { first = "Tom", last = "Preston-Werner" }
point = { x = 1, y = 2 }
animal = { type.name = "pug" }

View File

@ -0,0 +1,15 @@
{
name = {
first = "Tom",
last = "Preston-Werner",
},
point = {
x = 1,
y = 2,
},
animal = {
type = {
name = "pug",
},
},
}

View File

@ -0,0 +1,3 @@
[product]
type = { name = "Nail" }
type.edible = false # INVALID

View File

@ -0,0 +1 @@
ERROR: line 3: cannot insert new entry into existing table

View File

@ -0,0 +1,3 @@
[product]
type.name = "Nail"
type = { edible = false } # INVALID

View File

@ -0,0 +1 @@
ERROR: line 3: key exists

9
third-party/tomlc99/stdex/int0.toml vendored Normal file
View File

@ -0,0 +1,9 @@
int1 = +99
int2 = 42
int3 = 0
int4 = -17
int5 = 1_000
int6 = 5_349_221
int7 = 53_49_221 # Indian number system grouping
int8 = 1_2_3_4_5 # VALID but discouraged

10
third-party/tomlc99/stdex/int0.toml.res vendored Normal file
View File

@ -0,0 +1,10 @@
{
int1 = 99,
int2 = 42,
int3 = 0,
int4 = -17,
int5 = 1000,
int6 = 5349221,
int7 = 5349221,
int8 = 12345,
}

12
third-party/tomlc99/stdex/int1.toml vendored Normal file
View File

@ -0,0 +1,12 @@
# hexadecimal with prefix `0x`
hex1 = 0xDEADBEEF
hex2 = 0xdeadbeef
hex3 = 0xdead_beef
# octal with prefix `0o`
oct1 = 0o01234567
oct2 = 0o755 # useful for Unix file permissions
# binary with prefix `0b`
bin1 = 0b11010110

View File

@ -0,0 +1,8 @@
{
hex1 = 3735928559,
hex2 = 3735928559,
hex3 = 3735928559,
oct1 = 342391,
oct2 = 493,
bin1 = 214,
}

4
third-party/tomlc99/stdex/keys00.toml vendored Normal file
View File

@ -0,0 +1,4 @@
key = "value"
bare_key = "value"
bare-key = "value"
1234 = "value"

View File

@ -0,0 +1,6 @@
{
key = "value",
bare_key = "value",
bare-key = "value",
1234 = "value",
}

5
third-party/tomlc99/stdex/keys01.toml vendored Normal file
View File

@ -0,0 +1,5 @@
"127.0.0.1" = "value"
"character encoding" = "value"
"ʎǝʞ" = "value"
'key2' = "value"
'quoted "value"' = "value"

View File

@ -0,0 +1,7 @@
{
127.0.0.1 = "value",
character encoding = "value",
ʎǝʞ = "value",
key2 = "value",
quoted "value" = "value",
}

1
third-party/tomlc99/stdex/keys02.toml vendored Normal file
View File

@ -0,0 +1 @@
= "no key name" # INVALID

View File

@ -0,0 +1 @@
ERROR: line 1: syntax error

1
third-party/tomlc99/stdex/keys03.toml vendored Normal file
View File

@ -0,0 +1 @@
"" = "blank" # VALID but discouraged

View File

@ -0,0 +1,3 @@
{
= "blank",
}

4
third-party/tomlc99/stdex/keys04.toml vendored Normal file
View File

@ -0,0 +1,4 @@
name = "Orange"
physical.color = "orange"
physical.shape = "round"
site."google.com" = true

View File

@ -0,0 +1,10 @@
{
name = "Orange",
physical = {
color = "orange",
shape = "round",
},
site = {
google.com = true,
},
}

3
third-party/tomlc99/stdex/keys05.toml vendored Normal file
View File

@ -0,0 +1,3 @@
fruit.name = "banana" # this is best practice
fruit. color = "yellow" # same as fruit.color
fruit . flavor = "banana" # same as fruit.flavor

View File

@ -0,0 +1,7 @@
{
fruit = {
name = "banana",
color = "yellow",
flavor = "banana",
},
}

3
third-party/tomlc99/stdex/keys06.toml vendored Normal file
View File

@ -0,0 +1,3 @@
# DO NOT DO THIS
name = "Tom"
name = "Pradyun"

View File

@ -0,0 +1 @@
ERROR: line 3: key exists

3
third-party/tomlc99/stdex/keys07.toml vendored Normal file
View File

@ -0,0 +1,3 @@
# THIS WILL NOT WORK
spelling = "favorite"
"spelling" = "favourite"

View File

@ -0,0 +1 @@
ERROR: line 3: key exists

5
third-party/tomlc99/stdex/keys08.toml vendored Normal file
View File

@ -0,0 +1,5 @@
# This makes the key "fruit" into a table.
fruit.apple.smooth = true
# So then you can add to the table "fruit" like so:
fruit.orange = 2

View File

@ -0,0 +1,8 @@
{
fruit = {
orange = 2,
apple = {
smooth = true,
},
},
}

8
third-party/tomlc99/stdex/keys09.toml vendored Normal file
View File

@ -0,0 +1,8 @@
# THE FOLLOWING IS INVALID
# This defines the value of fruit.apple to be an integer.
fruit.apple = 1
# But then this treats fruit.apple like it's a table.
# You can't turn an integer into a table.
fruit.apple.smooth = true

View File

@ -0,0 +1 @@
ERROR: line 8: key exists

10
third-party/tomlc99/stdex/keys10.toml vendored Normal file
View File

@ -0,0 +1,10 @@
# VALID BUT DISCOURAGED
apple.type = "fruit"
orange.type = "fruit"
apple.skin = "thin"
orange.skin = "thick"
apple.color = "red"
orange.color = "orange"

View File

@ -0,0 +1,12 @@
{
apple = {
type = "fruit",
skin = "thin",
color = "red",
},
orange = {
type = "fruit",
skin = "thick",
color = "orange",
},
}

9
third-party/tomlc99/stdex/keys11.toml vendored Normal file
View File

@ -0,0 +1,9 @@
# RECOMMENDED
apple.type = "fruit"
apple.skin = "thin"
apple.color = "red"
orange.type = "fruit"
orange.skin = "thick"
orange.color = "orange"

View File

@ -0,0 +1,12 @@
{
apple = {
type = "fruit",
skin = "thin",
color = "red",
},
orange = {
type = "fruit",
skin = "thick",
color = "orange",
},
}

1
third-party/tomlc99/stdex/keys12.toml vendored Normal file
View File

@ -0,0 +1 @@
3.14159 = "pi"

View File

@ -0,0 +1,5 @@
{
3 = {
14159 = "pi",
},
}

View File

@ -0,0 +1 @@
key = "value"

View File

@ -0,0 +1,3 @@
{
key = "value",
}

View File

@ -0,0 +1 @@
key = # INVALID

View File

@ -0,0 +1 @@
ERROR: line 1: syntax error

View File

@ -0,0 +1 @@
first = "Tom" last = "Preston-Werner" # INVALID

View File

@ -0,0 +1 @@
ERROR: line 1: extra chars after value

View File

@ -0,0 +1 @@
str = "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF."

View File

@ -0,0 +1,3 @@
{
str = "I'm a string. \"You can quote me\". Name\tJos\0xc3\0xa9\nLocation\tSF.",
}

View File

@ -0,0 +1,9 @@
str1 = """
Roses are red
Violets are blue"""
# On a Unix system, the above multi-line string will most likely be the same as:
str2 = "Roses are red\nViolets are blue"
# On a Windows system, it will most likely be equivalent to:
str3 = "Roses are red\r\nViolets are blue"

View File

@ -0,0 +1,5 @@
{
str1 = "Roses are red\nViolets are blue",
str2 = "Roses are red\nViolets are blue",
str3 = "Roses are red\r\nViolets are blue",
}

15
third-party/tomlc99/stdex/string3.toml vendored Normal file
View File

@ -0,0 +1,15 @@
# The following strings are byte-for-byte equivalent:
str1 = "The quick brown fox jumps over the lazy dog."
str2 = """
The quick brown \
fox jumps over \
the lazy dog."""
str3 = """\
The quick brown \
fox jumps over \
the lazy dog.\
"""

View File

@ -0,0 +1,5 @@
{
str1 = "The quick brown fox jumps over the lazy dog.",
str2 = "The quick brown fox jumps over the lazy dog.",
str3 = "The quick brown fox jumps over the lazy dog.",
}

View File

@ -0,0 +1,7 @@
str4 = """Here are two quotation marks: "". Simple enough."""
# str5 = """Here are three quotation marks: """.""" # INVALID
str5 = """Here are three quotation marks: ""\"."""
str6 = """Here are fifteen quotation marks: ""\"""\"""\"""\"""\"."""
# "This," she said, "is just a pointless statement."
str7 = """"This," she said, "is just a pointless statement.""""

View File

@ -0,0 +1,6 @@
{
str4 = "Here are two quotation marks: \"\". Simple enough.",
str5 = "Here are three quotation marks: \"\"\".",
str6 = "Here are fifteen quotation marks: \"\"\"\"\"\"\"\"\"\"\"\"\"\"\".",
str7 = "\"This,\" she said, \"is just a pointless statement.\"",
}

View File

@ -0,0 +1,5 @@
# What you see is what you get.
winpath = 'C:\Users\nodejs\templates'
winpath2 = '\\ServerX\admin$\system32\'
quoted = 'Tom "Dubs" Preston-Werner'
regex = '<\i\c*\s*>'

View File

@ -0,0 +1,6 @@
{
winpath = "C:\\Users\\nodejs\\templates",
winpath2 = "\\\\ServerX\\admin$\\system32\\",
quoted = "Tom \"Dubs\" Preston-Werner",
regex = "<\\i\\c*\\s*>",
}

View File

@ -0,0 +1,7 @@
regex2 = '''I [dw]on't need \d{2} apples'''
lines = '''
The first newline is
trimmed in raw strings.
All other whitespace
is preserved.
'''

View File

@ -0,0 +1,4 @@
{
regex2 = "I [dw]on't need \\d{2} apples",
lines = "The first newline is\ntrimmed in raw strings.\n All other whitespace\n is preserved.\n",
}

View File

@ -0,0 +1,4 @@
quot15 = '''Here are fifteen quotation marks: """""""""""""""'''
# 'That,' she said, 'is still pointless.'
str = ''''That,' she said, 'is still pointless.''''

View File

@ -0,0 +1,4 @@
{
quot15 = "Here are fifteen quotation marks: \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"",
str = "'That,' she said, 'is still pointless.'",
}

View File

@ -0,0 +1,3 @@
# apos15 = '''Here are fifteen apostrophes: '''''''''''''''''' # INVALID
apos15 = "Here are fifteen apostrophes: '''''''''''''''"

View File

@ -0,0 +1 @@
ERROR: line 2: triple-s-quote inside string lit

7
third-party/tomlc99/stdex/tab01.toml vendored Normal file
View File

@ -0,0 +1,7 @@
[table-1]
key1 = "some string"
key2 = 123
[table-2]
key1 = "another string"
key2 = 456

View File

@ -0,0 +1,10 @@
{
table-1 = {
key1 = "some string",
key2 = 123,
},
table-2 = {
key1 = "another string",
key2 = 456,
},
}

2
third-party/tomlc99/stdex/tab02.toml vendored Normal file
View File

@ -0,0 +1,2 @@
[dog."tater.man"]
type.name = "pug"

View File

@ -0,0 +1,9 @@
{
dog = {
tater.man = {
type = {
name = "pug",
},
},
},
}

4
third-party/tomlc99/stdex/tab03.toml vendored Normal file
View File

@ -0,0 +1,4 @@
[a.b.c] # this is best practice
[ d.e.f ] # same as [d.e.f]
[ g . h . i ] # same as [g.h.i]
[ j . "ʞ" . 'l' ] # same as [j."ʞ".'l']

View File

@ -0,0 +1,26 @@
{
a = {
b = {
c = {
},
},
},
d = {
e = {
f = {
},
},
},
g = {
h = {
i = {
},
},
},
j = {
ʞ = {
l = {
},
},
},
}

Some files were not shown because too many files have changed in this diff Show More