Mercurial > repo
comparison bin/whatis @ 12231:44379732c06b draft
<b_jonas> fetch /hackenv/bin/whatis https://hack.esolangs.org/get/bin/whatis
author | HackEso <hackeso@esolangs.org> |
---|---|
date | Thu, 05 Dec 2019 20:05:28 +0000 |
parents | f79df0b509c8 |
children |
comparison
equal
deleted
inserted
replaced
12230:fb0eea93d4e9 | 12231:44379732c06b |
---|---|
11 argorg.append(arg) | 11 argorg.append(arg) |
12 argfoldv.append(arg.casefold()) | 12 argfoldv.append(arg.casefold()) |
13 foundv.append(False) | 13 foundv.append(False) |
14 with open(os.environ.get("HACKENV","/hackenv") + "/share/whatis", errors="surrogateescape") as whatisdb: | 14 with open(os.environ.get("HACKENV","/hackenv") + "/share/whatis", errors="surrogateescape") as whatisdb: |
15 for line in whatisdb: | 15 for line in whatisdb: |
16 parts = re.match(r"([^()]+)\(([0-9A-Z_a-z]+)\)", line) | 16 parts = re.match(r"([^()]+)\(([0-9A-Z_a-z])([0-9A-Z_a-z]*)\)", line) |
17 if parts: | 17 if parts: |
18 match = False | 18 match = False |
19 for argind, argfold in enumerate(argfoldv): | 19 for argind, argfold in enumerate(argfoldv): |
20 if argfold == parts.group(1).casefold(): | 20 if (argfold == parts.group(1).casefold() or |
21 argfold == parts.group(1) + "(" + parts.group(2) + parts.group(3) + ")" or | |
22 argfold == parts.group(1) + "(" + parts.group(3) + ")") \ | |
23 : | |
21 match = True | 24 match = True |
22 foundv[argind] = True | 25 foundv[argind] = True |
23 if match: | 26 if match: |
24 print(line, end="") | 27 print(line, end="") |
25 for arg, found in zip(argorg, foundv): | 28 for arg, found in zip(argorg, foundv): |
26 if not found: | 29 if not found: |
27 print(arg + ": nothing appropriate.") | 30 print(arg + ": nothing appropriate.") |
31 |