From 57b46d5123084a42a2936e9014a43115d0dc070f Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Tue, 10 Jul 2012 01:42:42 +0900 Subject: Added streaming parser for structured data format. Added JSON streaming parser. Note that currently JSON parser ignores frac and exp parts of number construct. --- src/ValueBaseStructParserStateImpl.h | 158 +++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 src/ValueBaseStructParserStateImpl.h (limited to 'src/ValueBaseStructParserStateImpl.h') diff --git a/src/ValueBaseStructParserStateImpl.h b/src/ValueBaseStructParserStateImpl.h new file mode 100644 index 00000000..adef7f64 --- /dev/null +++ b/src/ValueBaseStructParserStateImpl.h @@ -0,0 +1,158 @@ +/* */ +#ifndef D_VALUE_BASE_STRUCT_PARSER_STATE_IMPL_H +#define D_VALUE_BASE_STRUCT_PARSER_STATE_IMPL_H + +#include "ValueBaseStructParserState.h" + +namespace aria2 { + +class ValueValueBaseStructParserState : public ValueBaseStructParserState { +public: + virtual ~ValueValueBaseStructParserState() {} + + virtual void beginElement(ValueBaseStructParserStateMachine* psm, + int elementType); + + virtual void endElement(ValueBaseStructParserStateMachine* psm, + int elementType) + {} +}; + +class DictValueBaseStructParserState : public ValueBaseStructParserState { +public: + virtual ~DictValueBaseStructParserState() {} + + virtual void beginElement(ValueBaseStructParserStateMachine* psm, + int elementType); + + virtual void endElement(ValueBaseStructParserStateMachine* psm, + int elementType) + {} +}; + +class DictKeyValueBaseStructParserState : public ValueBaseStructParserState { +public: + virtual ~DictKeyValueBaseStructParserState() {} + + virtual void beginElement(ValueBaseStructParserStateMachine* psm, + int elementType) + {} + + virtual void endElement(ValueBaseStructParserStateMachine* psm, + int elementType); +}; + +class DictDataValueBaseStructParserState : + public ValueValueBaseStructParserState { +public: + virtual ~DictDataValueBaseStructParserState() {} + + virtual void endElement(ValueBaseStructParserStateMachine* psm, + int elementType); +}; + +class ArrayValueBaseStructParserState : public ValueBaseStructParserState { +public: + virtual ~ArrayValueBaseStructParserState() {} + + virtual void beginElement(ValueBaseStructParserStateMachine* psm, + int elementType); + + virtual void endElement(ValueBaseStructParserStateMachine* psm, + int elementType) + {} +}; + +class ArrayDataValueBaseStructParserState : + public ValueValueBaseStructParserState { +public: + virtual ~ArrayDataValueBaseStructParserState() {} + + virtual void endElement(ValueBaseStructParserStateMachine* psm, + int elementType); +}; + +class StringValueBaseStructParserState : public ValueBaseStructParserState { +public: + virtual ~StringValueBaseStructParserState() {} + + virtual void beginElement(ValueBaseStructParserStateMachine* psm, + int elementType) + {} + + virtual void endElement(ValueBaseStructParserStateMachine* psm, + int elementType); +}; + +class NumberValueBaseStructParserState : public ValueBaseStructParserState { +public: + virtual ~NumberValueBaseStructParserState() {} + + virtual void beginElement(ValueBaseStructParserStateMachine* psm, + int elementType) + {} + + virtual void endElement(ValueBaseStructParserStateMachine* psm, + int elementType); +}; + +class BoolValueBaseStructParserState : public ValueBaseStructParserState { +public: + virtual ~BoolValueBaseStructParserState() {} + + virtual void beginElement(ValueBaseStructParserStateMachine* psm, + int elementType) + {} + + virtual void endElement(ValueBaseStructParserStateMachine* psm, + int elementType); +}; + +class NullValueBaseStructParserState : public ValueBaseStructParserState { +public: + virtual ~NullValueBaseStructParserState() {} + + virtual void beginElement(ValueBaseStructParserStateMachine* psm, + int elementType) + {} + + virtual void endElement(ValueBaseStructParserStateMachine* psm, + int elementType); +}; + +} // namespace aria2 + +#endif // D_VALUE_BASE_STRUCT_PARSER_STATE_IMPL_H -- cgit