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