from rulesparser import RulesParser from rulebook import Rulebook from interactive import interactve_mode import argparse def main(): parser = argparse.ArgumentParser( prog = "Markov", description = "Simple tool to apply Markov's normal algorithms" ) parser.add_argument("rulebook", type=str, help="File with the rules for algorithm") parser.add_argument("-c", "--command-line-input", help="Takes input from user via command line " "arguments. There should be only one string. " "Please, use quotation marks") parser.add_argument("-v", "--verbose", action="store_true", help="If set, verbose output will be produced. " "It'll contain all intermediate transformations, " "reason of stop etc.") args = parser.parse_args() rules = RulesParser().parse(args.rulebook) rulebook = Rulebook(rules) print(args.command_line_input) if not args.command_line_input: interactve_mode(rulebook) return transformer = (rulebook.logged_transform if args.verbose else rulebook.transform) if args.verbose: _, log = transformer(args.command_line_input) print(log) else: print(transformer(args.command_line_input)) if __name__ == "__main__": main()