#!/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"): return node["value"][0]["data"]["value"] 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()