The class that parser implementations override. More...
#include <Variant/Parser.h>
Public Member Functions | |
| virtual int | Run ()=0 |
| virtual void | PushAction (shared_ptr< ParserActions > action) |
| virtual shared_ptr< ParserActions > | PopAction () |
| ParserActions * | TopAction () |
| virtual bool | Done () const =0 |
| virtual bool | Error () const =0 |
| virtual bool | Ok () const =0 |
| virtual std::string | ErrorStr () const =0 |
| Return a string describing the last error suitable for presentation to a user. | |
| virtual void | Reset ()=0 |
| Reset the parser. | |
Protected Attributes | |
|
std::deque< shared_ptr < ParserActions > > | action_stack |
The class that parser implementations override.
|
pure virtual |
These three functiosn can be used to query the state later. Done means that a call to Process will immediately return 1 Error if Process threw an exception last Ok if everything looks good (Process never been called, or last return 0 or possibly -1)
Implemented in libvariant::EventBuffer, libvariant::JSONParserImpl, libvariant::XMLPLISTParserImpl, libvariant::YAMLParserImpl, libvariant::BundleHdrParserImpl, and libvariant::MsgPackParserImpl.
|
inlinevirtual |
Pop the top ParserActions handler off the action handler stack and return it.
|
inlinevirtual |
Push a new ParserActions handler onto the action handler stack.
|
pure virtual |
Attempt to parse some actions. At least one ParserActions should be on the action stack.
Run is not guaranteed to be recursively callable from inside a ParserActions callback. Do not do that.
return 0 on success return 1 when done return -1 if needing more data is detected (not all parsers support this; can be treated as an error) throw on error
Implemented in libvariant::EventBuffer, libvariant::JSONParserImpl, libvariant::XMLPLISTParserImpl, libvariant::YAMLParserImpl, libvariant::BundleHdrParserImpl, and libvariant::MsgPackParserImpl.
|
inline |
Access the top ParserActions
1.8.7