[docs]classASTParser:"""Parses structured data (JSON/dict) into logical expressions."""
[docs]@staticmethoddefparse_dict(data:Dict)->LogicalExpression:"""Recursively parses a JSON/dict representation into an expression."""ifdata["type"]=="Proposition":returnProposition.from_dict(data)elifdata["type"]=="Not":returnNot.from_dict(data)elifdata["type"]=="BinaryOp":returnBinaryOp.from_dict(data)elifdata["type"]=="Function":returnFunction.from_dict(data)elifdata["type"]=="Relation":returnRelation.from_dict(data)elifdata["type"]=="UniversalQuantifier":returnUniversalQuantifier.from_dict(data)elifdata["type"]=="ExistentialQuantifier":returnExistentialQuantifier.from_dict(data)raiseValueError(f"Unknown expression type: {data['type']}")