#pragma once #include #include #include #include #include namespace pdfengine { enum class AstNodeType { Number, Name, String, HexString, Boolean, Null, Array, Dictionary }; class AstNode { public: AstNodeType type; std::string stringValue; std::vector bytesValue; double numberValue = 0.0; bool boolValue = false; std::vector> arrayItems; std::unordered_map> dictItems; AstNode() = default; explicit AstNode(AstNodeType t) : type(t) {} }; struct Operation { std::string op; std::vector> operands; }; }