RosettaCodeData/Task/Read-a-configuration-file/Nanoquery/read-a-configuration-file.nanoquery
2023-07-01 13:44:08 -04:00

42 lines
1.8 KiB
Text

import Nanoquery.IO
import dict
def get_config(fname)
f = new(File).open(fname)
lines = split(f.readAll(), "\n")
values = new(Dict)
for line in lines
line = trim(line)
if len(line) > 0
if not (line .startswith. "#") or (line .startswith. ";")
tokens = split(line, " ")
if len(tokens) = 1
values.add(upper(tokens[0]), true)
else
parameters = list()
parameter = ""
for i in range(1, len(tokens) - 1)
parameter += tokens[i] + " "
if parameter .endswith. ", "
parameter = parameter.substring(0, len(parameter) - 2)
parameters.append(trim(parameter))
parameter = ""
end
end
parameters.append(trim(parameter))
if len(parameters) > 1
values.add(upper(tokens[0]), parameters)
else
values.add(upper(tokens[0]), parameters[0])
end
end
end
end
end
return values
end
println get_config(args[2])