diff --git a/main.py b/main.py index f79d244..1e1d51e 100644 --- a/main.py +++ b/main.py @@ -38,17 +38,46 @@ ) ) - queries = parse_query( - # """stmt s1; while w1; Select BOOLEAN such that Follows(s1, w1)""" - """ - procedure p, q; - Select BOOLEAN such that Calls(_, _) - """ - ) + queries = parse_query("""stmt s1, s2; Select s1 such that Follows(s1, s2)""") print(evaluate_query(tree, queries[0])) - + print(str(evaluate_query(tree, queries[0]))) + print(*evaluate_query(tree, queries[0]), sep=", ") + result = evaluate_query(tree, queries[0]) + output = ", ".join(str(part) for part in result) + print(output) + # print(str(*evaluate_query(tree, queries[0]), sep=", ")) + + elif len(sys.argv) > 0: + + def no_time_left(): + print("\nPreparationTimeout") + exit(1) + + with open(sys.argv[-1]) as f: + code = f.read() + tree = parse(code) + print("Ready") + + while True: + try: + t = Timer(60, no_time_left) + t.start() + query = input() + "\n" + input() + t.cancel() + # TODO: Wyjątki powinny być zgłaszane na stdout lub stderr, w jednej linni, zaczynającej się od znaku kratki #. + + queries = parse_query(query) + result = evaluate_query(tree, queries[0]) + + + output = ", ".join(str(part) for part in result) + print(output) + except Exception: + import traceback + print('#' + traceback.format_exc()) + ''' with open(sys.argv[-1]) as f: code = f.read() tree = parse(code) @@ -57,5 +86,8 @@ query = input() + "\n" + input() - # TODO: use PQL and PKB - print("8") + queries = parse_query(query) + result = evaluate_query(tree, queries[0]) + output = ", ".join(str(part) for part in result) + print(output) + '''