#!/usr/bin/env python3 import sys as _sys import json as _json def evaluate(node): # _sys.stderr.write("eval: %s\n" % _json.dumps(node)) if (node["label"] == "constant_false"): return False elif (node["label"] == "constant_true"): return True elif (node["label"] == "negation"): return (not evaluate(node["children"][0])) elif (node["label"] == "conjunction"): return (evaluate(node["children"][0]) and evaluate(node["children"][1])) elif (node["label"] == "disjunction"): return (evaluate(node["children"][0]) or evaluate(node["children"][1])) elif (node["label"] == "priorised"): return evaluate(node["children"][0]) else: raise ValueError("unhandled label: " + node["label"]) def main(): content = _sys.stdin.read() node = _json.loads(content) value = evaluate(node) _sys.stdout.write(str(value) + "\n") main()