diff options
Diffstat (limited to 'examples/ini')
| -rw-r--r-- | examples/ini/ini.tm | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/examples/ini/ini.tm b/examples/ini/ini.tm index cee33f3c..3fa4c834 100644 --- a/examples/ini/ini.tm +++ b/examples/ini/ini.tm @@ -10,29 +10,29 @@ _HELP := " " func parse_ini(path:Path -> {Text={Text=Text}}): - text := path:read() or exit("Could not read INI file: $\[31;1]$(path)$\[]") + text := path.read() or exit("Could not read INI file: $\[31;1]$(path)$\[]") sections : @{Text=@{Text=Text}} = @{} current_section : @{Text=Text} = @{} # Line wraps: - text = text:replace_pattern($Pat/\{1 nl}{0+space}/, " ") + text = text.replace_pattern($Pat/\{1 nl}{0+space}/, " ") - for line in text:lines(): - line = line:trim() - skip if line:starts_with(";") or line:starts_with("#") - if line:matches_pattern($Pat/[?]/): - section_name := line:replace($Pat/[?]/, "\1"):trim():lower() + for line in text.lines(): + line = line.trim() + skip if line.starts_with(";") or line.starts_with("#") + if line.matches_pattern($Pat/[?]/): + section_name := line.replace($Pat/[?]/, "\1").trim().lower() current_section = @{} sections[section_name] = current_section - else if line:matches_pattern($Pat/{..}={..}/): - key := line:replace_pattern($Pat/{..}={..}/, "\1"):trim():lower() - value := line:replace_pattern($Pat/{..}={..}/, "\2"):trim() + else if line.matches_pattern($Pat/{..}={..}/): + key := line.replace_pattern($Pat/{..}={..}/, "\1").trim().lower() + value := line.replace_pattern($Pat/{..}={..}/, "\2").trim() current_section[key] = value return {k=v[] for k,v in sections[]} func main(path:Path, key:Text?): - keys := (key or ""):split($|/|) + keys := (key or "").split($|/|) if keys.length > 2: exit(" Too many arguments! @@ -44,18 +44,18 @@ func main(path:Path, key:Text?): say("$data") return - section := keys[1]:lower() + section := keys[1].lower() section_data := data[section] or exit(" Invalid section name: $\[31;1]$section$\[] - Valid names: $\[1]$(", ":join([k:quoted() for k in data.keys]))$\[] + Valid names: $\[1]$(", ".join([k.quoted() for k in data.keys]))$\[] ") if keys.length < 2 or keys[2] == '*': say("$section_data") return - section_key := keys[2]:lower() + section_key := keys[2].lower() value := section_data[section_key] or exit(" Invalid key: $\[31;1]$section_key$\[] - Valid keys: $\[1]$(", ":join([s:quoted() for s in section_data.keys]))$\[] + Valid keys: $\[1]$(", ".join([s.quoted() for s in section_data.keys]))$\[] ") say(value) |
