# -*- coding:utf-8 -*- import sys # TODO: this func is the same as in the 'unfold_cmd_chain.py' def unfold(sep, quote): total = [] res = [] while True: line = sys.stdin.readline() if not line: break if len(line) == 0: continue line = line[:-1].strip() i = line.find(sep) if i < 0: res.append(quote + line.strip() + quote) continue fields = line.split(sep) fields = [x.strip() for x in fields] if len(fields) == 0: total.append(res) res = [] continue if len(fields[0]) > 0: res.append(quote + fields[0] + quote) total.append(res) if len(fields[-1]) > 0: res = [quote + fields[-1] + quote] else: res = [] fields = fields[1:-1] fields = [x for x in fields if len(x) > 0] fields = [quote + x + quote for x in fields] for field in fields: if len(field) > 0: total.append([field]) total.append(res) res = None total = [x for x in total if len(x) > 0] return total def render(total, sep, quote): sep = quote + sep + quote for cmd in total: once = [] loop = [] for i in range(0, len(cmd)): field = cmd[i] if field != sep: once.append(field) else: loop = cmd[i + 1:] break has_loop = (len(loop) != 0) and 'has_loop' or 'no_loop' print((' '.join(once) or ';') + '\t' + has_loop + '\t' + ' '.join(loop)) if __name__ == '__main__': quotes = True if len(sys.argv) > 1: quotes = (sys.argv[1] == 'true') quote = '' if quotes: quote = '"' render(unfold('GO:', quote), 'LOOP:', quote)