summaryrefslogtreecommitdiff
path: root/core/fxcrt/xml/cfx_xmlparser.h
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2018-05-02 18:08:46 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-05-02 18:08:46 +0000
commit303f9a3afc4a86147213d4ac57894480485090a2 (patch)
treed19d2167cf305ee52d72f5dd5c74820889c481e4 /core/fxcrt/xml/cfx_xmlparser.h
parent8f893b69012d4f5029cfedf91c5ef653717257a8 (diff)
downloadpdfium-303f9a3afc4a86147213d4ac57894480485090a2.tar.xz
[xml] Simplify the CFX_XMLParser parse methods
This CL moves the switch from CFX_XMLParse::Parse into CFX_XMLParser::DoSyntaxParse. This means all the work to build the tree is now done in one place instead of spread between the two methods. Change-Id: Ie9c6cd67795c3fcbd3e305187a06cd727d386a7c Reviewed-on: https://pdfium-review.googlesource.com/31950 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fxcrt/xml/cfx_xmlparser.h')
-rw-r--r--core/fxcrt/xml/cfx_xmlparser.h27
1 files changed, 3 insertions, 24 deletions
diff --git a/core/fxcrt/xml/cfx_xmlparser.h b/core/fxcrt/xml/cfx_xmlparser.h
index db8239bd98..aa5ad5761c 100644
--- a/core/fxcrt/xml/cfx_xmlparser.h
+++ b/core/fxcrt/xml/cfx_xmlparser.h
@@ -20,24 +20,6 @@ class CFX_XMLElement;
class CFX_XMLNode;
class IFX_SeekableReadStream;
-enum class FX_XmlSyntaxResult {
- None,
- InstructionOpen,
- InstructionClose,
- ElementOpen,
- ElementBreak,
- ElementClose,
- TargetName,
- TagName,
- AttriName,
- AttriValue,
- Text,
- CData,
- TargetData,
- Error,
- EndOfString
-};
-
class CFX_XMLParser {
public:
static bool IsXMLNameChar(wchar_t ch, bool bFirstChar);
@@ -47,10 +29,6 @@ class CFX_XMLParser {
std::unique_ptr<CFX_XMLDocument> Parse();
- protected:
- FX_XmlSyntaxResult DoSyntaxParse();
- WideString GetTextData();
-
private:
enum class FDE_XmlSyntaxState {
Text,
@@ -71,15 +49,16 @@ class CFX_XMLParser {
TargetData
};
+ bool DoSyntaxParse(CFX_XMLDocument* doc);
+ WideString GetTextData();
void ProcessTextChar(wchar_t ch);
- bool GetStatus() const;
+ void ProcessTargetData();
CFX_XMLNode* current_node_ = nullptr;
WideString current_attribute_name_;
RetainPtr<IFX_SeekableReadStream> m_pStream;
FX_FILESIZE m_Start = 0; // Start position in m_Buffer
FX_FILESIZE m_End = 0; // End position in m_Buffer
- FX_XmlSyntaxResult m_syntaxParserResult = FX_XmlSyntaxResult::None;
FDE_XmlSyntaxState m_syntaxParserState = FDE_XmlSyntaxState::Text;
std::stack<FX_XMLNODETYPE> m_XMLNodeTypeStack;
std::stack<wchar_t> m_SkipStack;