Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 42 additions & 10 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
'''