| Index: xfa/fde/xml/fde_xml_imp.cpp
|
| diff --git a/xfa/fde/xml/fde_xml_imp.cpp b/xfa/fde/xml/fde_xml_imp.cpp
|
| index 0affe8a62190ef2e2b9a58b9c2dfa50c5feaed34..25c4c5abe5cd04cc676e5bfc1eb30e50f579b178 100644
|
| --- a/xfa/fde/xml/fde_xml_imp.cpp
|
| +++ b/xfa/fde/xml/fde_xml_imp.cpp
|
| @@ -1089,63 +1089,64 @@ CFDE_XMLDOMParser::~CFDE_XMLDOMParser() {
|
| m_ws1.Empty();
|
| m_ws2.Empty();
|
| }
|
| +
|
| int32_t CFDE_XMLDOMParser::DoParser(IFX_Pause* pPause) {
|
| - uint32_t dwRet;
|
| + FDE_XmlSyntaxResult syntaxParserResult;
|
| int32_t iCount = 0;
|
| while (TRUE) {
|
| - dwRet = m_pParser->DoSyntaxParse();
|
| - switch (dwRet) {
|
| - case FDE_XMLSYNTAXSTATUS_InstructionOpen:
|
| + syntaxParserResult = m_pParser->DoSyntaxParse();
|
| + switch (syntaxParserResult) {
|
| + case FDE_XmlSyntaxResult::InstructionOpen:
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_InstructionClose:
|
| + case FDE_XmlSyntaxResult::InstructionClose:
|
| if (m_pChild->GetType() != FDE_XMLNODE_Instruction) {
|
| - dwRet = FDE_XMLSYNTAXSTATUS_Error;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| break;
|
| }
|
| m_pChild = m_pParent;
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_ElementOpen:
|
| - case FDE_XMLSYNTAXSTATUS_ElementBreak:
|
| + case FDE_XmlSyntaxResult::ElementOpen:
|
| + case FDE_XmlSyntaxResult::ElementBreak:
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_ElementClose:
|
| + case FDE_XmlSyntaxResult::ElementClose:
|
| if (m_pChild->GetType() != FDE_XMLNODE_Element) {
|
| - dwRet = FDE_XMLSYNTAXSTATUS_Error;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| break;
|
| }
|
| m_pParser->GetTagName(m_ws1);
|
| ((CFDE_XMLElement*)m_pChild)->GetTagName(m_ws2);
|
| if (m_ws1.GetLength() > 0 && m_ws1.Compare(m_ws2) != 0) {
|
| - dwRet = FDE_XMLSYNTAXSTATUS_Error;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| break;
|
| }
|
| m_NodeStack.Pop();
|
| if (m_NodeStack.GetSize() < 1) {
|
| - dwRet = FDE_XMLSYNTAXSTATUS_Error;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| break;
|
| }
|
| m_pParent = (CFDE_XMLNode*)*m_NodeStack.GetTopElement();
|
| m_pChild = m_pParent;
|
| iCount++;
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_TargetName:
|
| + case FDE_XmlSyntaxResult::TargetName:
|
| m_pParser->GetTargetName(m_ws1);
|
| m_pChild = new CFDE_XMLInstruction(m_ws1);
|
| m_pParent->InsertChildNode(m_pChild);
|
| m_ws1.Empty();
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_TagName:
|
| + case FDE_XmlSyntaxResult::TagName:
|
| m_pParser->GetTagName(m_ws1);
|
| m_pChild = new CFDE_XMLElement(m_ws1);
|
| m_pParent->InsertChildNode(m_pChild);
|
| m_NodeStack.Push(m_pChild);
|
| m_pParent = m_pChild;
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_AttriName:
|
| + case FDE_XmlSyntaxResult::AttriName:
|
| m_pParser->GetAttributeName(m_ws1);
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_AttriValue:
|
| + case FDE_XmlSyntaxResult::AttriValue:
|
| if (m_pChild == NULL) {
|
| - dwRet = FDE_XMLSYNTAXSTATUS_Error;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| break;
|
| }
|
| m_pParser->GetAttributeName(m_ws2);
|
| @@ -1156,22 +1157,22 @@ int32_t CFDE_XMLDOMParser::DoParser(IFX_Pause* pPause) {
|
| }
|
| m_ws1.Empty();
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_Text:
|
| + case FDE_XmlSyntaxResult::Text:
|
| m_pParser->GetTextData(m_ws1);
|
| m_pChild = new CFDE_XMLText(m_ws1);
|
| m_pParent->InsertChildNode(m_pChild);
|
| m_pChild = m_pParent;
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_CData:
|
| + case FDE_XmlSyntaxResult::CData:
|
| m_pParser->GetTextData(m_ws1);
|
| m_pChild = new CFDE_XMLCharData(m_ws1);
|
| m_pParent->InsertChildNode(m_pChild);
|
| m_pChild = m_pParent;
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_TargetData:
|
| + case FDE_XmlSyntaxResult::TargetData:
|
| if (m_pChild == NULL ||
|
| m_pChild->GetType() != FDE_XMLNODE_Instruction) {
|
| - dwRet = FDE_XMLSYNTAXSTATUS_Error;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| break;
|
| }
|
| if (!m_ws1.IsEmpty()) {
|
| @@ -1184,8 +1185,8 @@ int32_t CFDE_XMLDOMParser::DoParser(IFX_Pause* pPause) {
|
| default:
|
| break;
|
| }
|
| - if (dwRet == FDE_XMLSYNTAXSTATUS_Error ||
|
| - dwRet == FDE_XMLSYNTAXSTATUS_EOS) {
|
| + if (syntaxParserResult == FDE_XmlSyntaxResult::Error ||
|
| + syntaxParserResult == FDE_XmlSyntaxResult::EndOfString) {
|
| break;
|
| }
|
| if (pPause != NULL && iCount > 500 && pPause->NeedToPauseNow()) {
|
| @@ -1208,28 +1209,28 @@ CFDE_XMLSAXParser::~CFDE_XMLSAXParser() {
|
| m_ws2.Empty();
|
| }
|
| int32_t CFDE_XMLSAXParser::DoParser(IFX_Pause* pPause) {
|
| - uint32_t dwRet = 0;
|
| + FDE_XmlSyntaxResult syntaxParserResult;
|
| int32_t iCount = 0;
|
| while (TRUE) {
|
| - dwRet = m_pParser->DoSyntaxParse();
|
| - switch (dwRet) {
|
| - case FDE_XMLSYNTAXSTATUS_ElementBreak:
|
| + syntaxParserResult = m_pParser->DoSyntaxParse();
|
| + switch (syntaxParserResult) {
|
| + case FDE_XmlSyntaxResult::ElementBreak:
|
| if (m_pTagTop == NULL) {
|
| - dwRet = FDE_XMLSYNTAXSTATUS_Error;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| break;
|
| }
|
| if (m_pTagTop->eType == FDE_XMLNODE_Element) {
|
| m_pHandler->OnTagBreak(m_pHandler, m_pTagTop->wsTagName);
|
| }
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_ElementClose:
|
| + case FDE_XmlSyntaxResult::ElementClose:
|
| if (m_pTagTop == NULL || m_pTagTop->eType != FDE_XMLNODE_Element) {
|
| - dwRet = FDE_XMLSYNTAXSTATUS_Error;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| break;
|
| }
|
| m_pParser->GetTagName(m_ws1);
|
| if (m_ws1.GetLength() > 0 && m_ws1.Compare(m_pTagTop->wsTagName) != 0) {
|
| - dwRet = FDE_XMLSYNTAXSTATUS_Error;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| break;
|
| } else if (m_ws1.GetLength() == 0) {
|
| m_pHandler->OnTagBreak(m_pHandler, m_pTagTop->wsTagName);
|
| @@ -1238,7 +1239,7 @@ int32_t CFDE_XMLSAXParser::DoParser(IFX_Pause* pPause) {
|
| Pop();
|
| iCount++;
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_TargetName: {
|
| + case FDE_XmlSyntaxResult::TargetName: {
|
| m_pParser->GetTargetName(m_ws1);
|
| CFDE_XMLTAG xmlTag;
|
| xmlTag.wsTagName = m_ws1;
|
| @@ -1248,7 +1249,7 @@ int32_t CFDE_XMLSAXParser::DoParser(IFX_Pause* pPause) {
|
| m_pTagTop->wsTagName);
|
| m_ws1.Empty();
|
| } break;
|
| - case FDE_XMLSYNTAXSTATUS_TagName: {
|
| + case FDE_XmlSyntaxResult::TagName: {
|
| m_pParser->GetTargetName(m_ws1);
|
| CFDE_XMLTAG xmlTag;
|
| xmlTag.wsTagName = m_ws1;
|
| @@ -1257,13 +1258,13 @@ int32_t CFDE_XMLSAXParser::DoParser(IFX_Pause* pPause) {
|
| m_pHandler->OnTagEnter(m_pHandler, FDE_XMLNODE_Element,
|
| m_pTagTop->wsTagName);
|
| } break;
|
| - case FDE_XMLSYNTAXSTATUS_AttriName:
|
| + case FDE_XmlSyntaxResult::AttriName:
|
| m_pParser->GetTargetName(m_ws1);
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_AttriValue:
|
| + case FDE_XmlSyntaxResult::AttriValue:
|
| m_pParser->GetAttributeName(m_ws2);
|
| if (m_pTagTop == NULL) {
|
| - dwRet = FDE_XMLSYNTAXSTATUS_Error;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| break;
|
| }
|
| if (m_pTagTop->eType == FDE_XMLNODE_Element) {
|
| @@ -1271,15 +1272,15 @@ int32_t CFDE_XMLSAXParser::DoParser(IFX_Pause* pPause) {
|
| }
|
| m_ws1.Empty();
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_CData:
|
| + case FDE_XmlSyntaxResult::CData:
|
| m_pParser->GetTextData(m_ws1);
|
| m_pHandler->OnData(m_pHandler, FDE_XMLNODE_CharData, m_ws1);
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_Text:
|
| + case FDE_XmlSyntaxResult::Text:
|
| m_pParser->GetTextData(m_ws1);
|
| m_pHandler->OnData(m_pHandler, FDE_XMLNODE_Text, m_ws1);
|
| break;
|
| - case FDE_XMLSYNTAXSTATUS_TargetData:
|
| + case FDE_XmlSyntaxResult::TargetData:
|
| m_pParser->GetTargetData(m_ws1);
|
| m_pHandler->OnData(m_pHandler, FDE_XMLNODE_Instruction, m_ws1);
|
| m_ws1.Empty();
|
| @@ -1287,8 +1288,8 @@ int32_t CFDE_XMLSAXParser::DoParser(IFX_Pause* pPause) {
|
| default:
|
| break;
|
| }
|
| - if (dwRet == FDE_XMLSYNTAXSTATUS_Error ||
|
| - dwRet == FDE_XMLSYNTAXSTATUS_EOS) {
|
| + if (syntaxParserResult == FDE_XmlSyntaxResult::Error ||
|
| + syntaxParserResult == FDE_XmlSyntaxResult::EndOfString) {
|
| break;
|
| }
|
| if (pPause != NULL && iCount > 500 && pPause->NeedToPauseNow()) {
|
| @@ -1455,8 +1456,8 @@ CFDE_XMLSyntaxParser::CFDE_XMLSyntaxParser()
|
| m_pCurrentBlock(nullptr),
|
| m_iIndexInBlock(0),
|
| m_iTextDataLength(0),
|
| - m_dwStatus(FDE_XMLSYNTAXSTATUS_None),
|
| - m_dwMode(FDE_XMLSYNTAXMODE_Text),
|
| + m_syntaxParserResult(FDE_XmlSyntaxResult::None),
|
| + m_syntaxParserState(FDE_XmlSyntaxState::Text),
|
| m_wQuotationMark(0),
|
| m_iEntityStart(-1),
|
| m_SkipStack(16) {
|
| @@ -1483,21 +1484,22 @@ void CFDE_XMLSyntaxParser::Init(IFX_Stream* pStream,
|
| m_iParsedBytes = m_iParsedChars = 0;
|
| m_iBufferChars = 0;
|
| }
|
| -uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| - if (m_dwStatus == FDE_XMLSYNTAXSTATUS_Error ||
|
| - m_dwStatus == FDE_XMLSYNTAXSTATUS_EOS) {
|
| - return m_dwStatus;
|
| +
|
| +FDE_XmlSyntaxResult CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| + if (m_syntaxParserResult == FDE_XmlSyntaxResult::Error ||
|
| + m_syntaxParserResult == FDE_XmlSyntaxResult::EndOfString) {
|
| + return m_syntaxParserResult;
|
| }
|
| FXSYS_assert(m_pStream && m_pBuffer && m_BlockBuffer.IsInitialized());
|
| int32_t iStreamLength = m_pStream->GetLength();
|
| int32_t iPos;
|
|
|
| - uint32_t dwStatus = FDE_XMLSYNTAXSTATUS_None;
|
| + FDE_XmlSyntaxResult syntaxParserResult = FDE_XmlSyntaxResult::None;
|
| while (TRUE) {
|
| if (m_pStart >= m_pEnd) {
|
| if (m_bEOS || m_iCurrentPos >= iStreamLength) {
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_EOS;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::EndOfString;
|
| + return m_syntaxParserResult;
|
| }
|
| m_iParsedChars += (m_pEnd - m_pBuffer);
|
| m_iParsedBytes = m_iCurrentPos;
|
| @@ -1509,8 +1511,8 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| iPos = m_pStream->GetPosition();
|
| if (m_iBufferChars < 1) {
|
| m_iCurrentPos = iStreamLength;
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_EOS;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::EndOfString;
|
| + return m_syntaxParserResult;
|
| }
|
| m_iCurrentPos = iPos;
|
| m_pStart = m_pBuffer;
|
| @@ -1519,8 +1521,8 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
|
|
| while (m_pStart < m_pEnd) {
|
| FX_WCHAR ch = *m_pStart;
|
| - switch (m_dwMode) {
|
| - case FDE_XMLSYNTAXMODE_Text:
|
| + switch (m_syntaxParserState) {
|
| + case FDE_XmlSyntaxState::Text:
|
| if (ch == L'<') {
|
| if (m_iDataLength > 0) {
|
| m_iTextDataLength = m_iDataLength;
|
| @@ -1528,22 +1530,22 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| m_iEntityStart = -1;
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_Text;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::Text;
|
| } else {
|
| m_pStart++;
|
| - m_dwMode = FDE_XMLSYNTAXMODE_Node;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::Node;
|
| }
|
| } else {
|
| ParseTextChar(ch);
|
| }
|
| break;
|
| - case FDE_XMLSYNTAXMODE_Node:
|
| + case FDE_XmlSyntaxState::Node:
|
| if (ch == L'!') {
|
| m_pStart++;
|
| - m_dwMode = FDE_XMLSYNTAXMODE_SkipCommentOrDecl;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::SkipCommentOrDecl;
|
| } else if (ch == L'/') {
|
| m_pStart++;
|
| - m_dwMode = FDE_XMLSYNTAXMODE_CloseElement;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::CloseElement;
|
| } else if (ch == L'?') {
|
| m_iLastNodeNum++;
|
| m_iCurrentNodeNum = m_iLastNodeNum;
|
| @@ -1551,42 +1553,42 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_CurNode.eNodeType = FDE_XMLNODE_Instruction;
|
| m_XMLNodeStack.Push(m_CurNode);
|
| m_pStart++;
|
| - m_dwMode = FDE_XMLSYNTAXMODE_Target;
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_InstructionOpen;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::Target;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::InstructionOpen;
|
| } else {
|
| m_iLastNodeNum++;
|
| m_iCurrentNodeNum = m_iLastNodeNum;
|
| m_CurNode.iNodeNum = m_iLastNodeNum;
|
| m_CurNode.eNodeType = FDE_XMLNODE_Element;
|
| m_XMLNodeStack.Push(m_CurNode);
|
| - m_dwMode = FDE_XMLSYNTAXMODE_Tag;
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_ElementOpen;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::Tag;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::ElementOpen;
|
| }
|
| break;
|
| - case FDE_XMLSYNTAXMODE_Target:
|
| - case FDE_XMLSYNTAXMODE_Tag:
|
| + case FDE_XmlSyntaxState::Target:
|
| + case FDE_XmlSyntaxState::Tag:
|
| if (!FDE_IsXMLNameChar(ch, m_iDataLength < 1)) {
|
| if (m_iDataLength < 1) {
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| + return m_syntaxParserResult;
|
| } else {
|
| m_iTextDataLength = m_iDataLength;
|
| m_BlockBuffer.Reset();
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| - if (m_dwMode != FDE_XMLSYNTAXMODE_Target) {
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_TagName;
|
| + if (m_syntaxParserState != FDE_XmlSyntaxState::Target) {
|
| + syntaxParserResult = FDE_XmlSyntaxResult::TagName;
|
| } else {
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_TargetName;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::TargetName;
|
| }
|
| - m_dwMode = FDE_XMLSYNTAXMODE_AttriName;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::AttriName;
|
| }
|
| } else {
|
| if (m_iIndexInBlock == m_iAllocStep) {
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| if (!m_pCurrentBlock) {
|
| - return FDE_XMLSYNTAXSTATUS_Error;
|
| + return FDE_XmlSyntaxResult::Error;
|
| }
|
| }
|
| m_pCurrentBlock[m_iIndexInBlock++] = ch;
|
| @@ -1594,7 +1596,7 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_pStart++;
|
| }
|
| break;
|
| - case FDE_XMLSYNTAXMODE_AttriName:
|
| + case FDE_XmlSyntaxState::AttriName:
|
| if (m_iDataLength < 1 && FDE_IsXMLWhiteSpace(ch)) {
|
| m_pStart++;
|
| break;
|
| @@ -1603,24 +1605,24 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| if (m_iDataLength < 1) {
|
| if (m_CurNode.eNodeType == FDE_XMLNODE_Element) {
|
| if (ch == L'>' || ch == L'/') {
|
| - m_dwMode = FDE_XMLSYNTAXMODE_BreakElement;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::BreakElement;
|
| break;
|
| }
|
| } else if (m_CurNode.eNodeType == FDE_XMLNODE_Instruction) {
|
| if (ch == L'?') {
|
| - m_dwMode = FDE_XMLSYNTAXMODE_CloseInstruction;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::CloseInstruction;
|
| m_pStart++;
|
| } else {
|
| - m_dwMode = FDE_XMLSYNTAXMODE_TargetData;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::TargetData;
|
| }
|
| break;
|
| }
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| + return m_syntaxParserResult;
|
| } else {
|
| if (m_CurNode.eNodeType == FDE_XMLNODE_Instruction) {
|
| if (ch != '=' && !FDE_IsXMLWhiteSpace(ch)) {
|
| - m_dwMode = FDE_XMLSYNTAXMODE_TargetData;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::TargetData;
|
| break;
|
| }
|
| }
|
| @@ -1628,15 +1630,15 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_BlockBuffer.Reset();
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| - m_dwMode = FDE_XMLSYNTAXMODE_AttriEqualSign;
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_AttriName;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::AttriEqualSign;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::AttriName;
|
| }
|
| } else {
|
| if (m_iIndexInBlock == m_iAllocStep) {
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| if (!m_pCurrentBlock) {
|
| - return FDE_XMLSYNTAXSTATUS_Error;
|
| + return FDE_XmlSyntaxResult::Error;
|
| }
|
| }
|
| m_pCurrentBlock[m_iIndexInBlock++] = ch;
|
| @@ -1644,77 +1646,77 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_pStart++;
|
| }
|
| break;
|
| - case FDE_XMLSYNTAXMODE_AttriEqualSign:
|
| + case FDE_XmlSyntaxState::AttriEqualSign:
|
| if (FDE_IsXMLWhiteSpace(ch)) {
|
| m_pStart++;
|
| break;
|
| }
|
| if (ch != L'=') {
|
| if (m_CurNode.eNodeType == FDE_XMLNODE_Instruction) {
|
| - m_dwMode = FDE_XMLSYNTAXMODE_TargetData;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::TargetData;
|
| break;
|
| }
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| + return m_syntaxParserResult;
|
| } else {
|
| - m_dwMode = FDE_XMLSYNTAXMODE_AttriQuotation;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::AttriQuotation;
|
| m_pStart++;
|
| }
|
| break;
|
| - case FDE_XMLSYNTAXMODE_AttriQuotation:
|
| + case FDE_XmlSyntaxState::AttriQuotation:
|
| if (FDE_IsXMLWhiteSpace(ch)) {
|
| m_pStart++;
|
| break;
|
| }
|
| if (ch != L'\"' && ch != L'\'') {
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| + return m_syntaxParserResult;
|
| } else {
|
| m_wQuotationMark = ch;
|
| - m_dwMode = FDE_XMLSYNTAXMODE_AttriValue;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::AttriValue;
|
| m_pStart++;
|
| }
|
| break;
|
| - case FDE_XMLSYNTAXMODE_AttriValue:
|
| + case FDE_XmlSyntaxState::AttriValue:
|
| if (ch == m_wQuotationMark) {
|
| if (m_iEntityStart > -1) {
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| + return m_syntaxParserResult;
|
| }
|
| m_iTextDataLength = m_iDataLength;
|
| m_wQuotationMark = 0;
|
| m_BlockBuffer.Reset();
|
| m_pCurrentBlock = m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| m_pStart++;
|
| - m_dwMode = FDE_XMLSYNTAXMODE_AttriName;
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_AttriValue;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::AttriName;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::AttriValue;
|
| } else {
|
| ParseTextChar(ch);
|
| }
|
| break;
|
| - case FDE_XMLSYNTAXMODE_CloseInstruction:
|
| + case FDE_XmlSyntaxState::CloseInstruction:
|
| if (ch != L'>') {
|
| if (m_iIndexInBlock == m_iAllocStep) {
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| if (!m_pCurrentBlock) {
|
| - return FDE_XMLSYNTAXSTATUS_Error;
|
| + return FDE_XmlSyntaxResult::Error;
|
| }
|
| }
|
| m_pCurrentBlock[m_iIndexInBlock++] = ch;
|
| m_iDataLength++;
|
| - m_dwMode = FDE_XMLSYNTAXMODE_TargetData;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::TargetData;
|
| } else if (m_iDataLength > 0) {
|
| m_iTextDataLength = m_iDataLength;
|
| m_BlockBuffer.Reset();
|
| m_pCurrentBlock = m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_TargetData;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::TargetData;
|
| } else {
|
| m_pStart++;
|
| FDE_XMLNODE* pXMLNode = m_XMLNodeStack.GetTopElement();
|
| if (pXMLNode == NULL) {
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| + return m_syntaxParserResult;
|
| }
|
| m_XMLNodeStack.Pop();
|
| pXMLNode = m_XMLNodeStack.GetTopElement();
|
| @@ -1727,29 +1729,29 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_iCurrentNodeNum = m_CurNode.iNodeNum;
|
| m_BlockBuffer.Reset();
|
| m_pCurrentBlock = m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| - m_dwMode = FDE_XMLSYNTAXMODE_Text;
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_InstructionClose;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::Text;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::InstructionClose;
|
| }
|
| break;
|
| - case FDE_XMLSYNTAXMODE_BreakElement:
|
| + case FDE_XmlSyntaxState::BreakElement:
|
| if (ch == L'>') {
|
| - m_dwMode = FDE_XMLSYNTAXMODE_Text;
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_ElementBreak;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::Text;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::ElementBreak;
|
| } else if (ch == L'/') {
|
| - m_dwMode = FDE_XMLSYNTAXMODE_CloseElement;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::CloseElement;
|
| } else {
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| + return m_syntaxParserResult;
|
| }
|
| m_pStart++;
|
| break;
|
| - case FDE_XMLSYNTAXMODE_CloseElement:
|
| + case FDE_XmlSyntaxState::CloseElement:
|
| if (!FDE_IsXMLNameChar(ch, m_iDataLength < 1)) {
|
| if (ch == L'>') {
|
| FDE_XMLNODE* pXMLNode = m_XMLNodeStack.GetTopElement();
|
| if (pXMLNode == NULL) {
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| + return m_syntaxParserResult;
|
| }
|
| m_XMLNodeStack.Pop();
|
| pXMLNode = m_XMLNodeStack.GetTopElement();
|
| @@ -1764,18 +1766,18 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_BlockBuffer.Reset();
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| - m_dwMode = FDE_XMLSYNTAXMODE_Text;
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_ElementClose;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::Text;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::ElementClose;
|
| } else if (!FDE_IsXMLWhiteSpace(ch)) {
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| + return m_syntaxParserResult;
|
| }
|
| } else {
|
| if (m_iIndexInBlock == m_iAllocStep) {
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| if (!m_pCurrentBlock) {
|
| - return FDE_XMLSYNTAXSTATUS_Error;
|
| + return FDE_XmlSyntaxResult::Error;
|
| }
|
| }
|
| m_pCurrentBlock[m_iIndexInBlock++] = ch;
|
| @@ -1783,33 +1785,33 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| }
|
| m_pStart++;
|
| break;
|
| - case FDE_XMLSYNTAXMODE_SkipCommentOrDecl:
|
| + case FDE_XmlSyntaxState::SkipCommentOrDecl:
|
| if (FX_wcsnicmp(m_pStart, L"--", 2) == 0) {
|
| m_pStart += 2;
|
| - m_dwMode = FDE_XMLSYNTAXMODE_SkipComment;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::SkipComment;
|
| } else if (FX_wcsnicmp(m_pStart, L"[CDATA[", 7) == 0) {
|
| m_pStart += 7;
|
| - m_dwMode = FDE_XMLSYNTAXMODE_SkipCData;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::SkipCData;
|
| } else {
|
| - m_dwMode = FDE_XMLSYNTAXMODE_SkipDeclNode;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::SkipDeclNode;
|
| m_SkipChar = L'>';
|
| m_SkipStack.Push(L'>');
|
| }
|
| break;
|
| - case FDE_XMLSYNTAXMODE_SkipCData: {
|
| + case FDE_XmlSyntaxState::SkipCData: {
|
| if (FX_wcsnicmp(m_pStart, L"]]>", 3) == 0) {
|
| m_pStart += 3;
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_CData;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::CData;
|
| m_iTextDataLength = m_iDataLength;
|
| m_BlockBuffer.Reset();
|
| m_pCurrentBlock = m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| - m_dwMode = FDE_XMLSYNTAXMODE_Text;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::Text;
|
| } else {
|
| if (m_iIndexInBlock == m_iAllocStep) {
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| if (!m_pCurrentBlock)
|
| - return FDE_XMLSYNTAXSTATUS_Error;
|
| + return FDE_XmlSyntaxResult::Error;
|
| }
|
| m_pCurrentBlock[m_iIndexInBlock++] = ch;
|
| m_iDataLength++;
|
| @@ -1817,7 +1819,7 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| }
|
| break;
|
| }
|
| - case FDE_XMLSYNTAXMODE_SkipDeclNode:
|
| + case FDE_XmlSyntaxState::SkipDeclNode:
|
| if (m_SkipChar == L'\'' || m_SkipChar == L'\"') {
|
| m_pStart++;
|
| if (ch != m_SkipChar)
|
| @@ -1826,7 +1828,7 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_SkipStack.Pop();
|
| uint32_t* pDWord = m_SkipStack.GetTopElement();
|
| if (!pDWord)
|
| - m_dwMode = FDE_XMLSYNTAXMODE_Text;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::Text;
|
| else
|
| m_SkipChar = (FX_WCHAR)*pDWord;
|
| } else {
|
| @@ -1864,7 +1866,7 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_BlockBuffer.Reset();
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| - m_dwMode = FDE_XMLSYNTAXMODE_Text;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::Text;
|
| } else {
|
| m_SkipChar = static_cast<FX_WCHAR>(*pDWord);
|
| }
|
| @@ -1876,7 +1878,7 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| if (!m_pCurrentBlock) {
|
| - return FDE_XMLSYNTAXSTATUS_Error;
|
| + return FDE_XmlSyntaxResult::Error;
|
| }
|
| }
|
| m_pCurrentBlock[m_iIndexInBlock++] = ch;
|
| @@ -1885,15 +1887,15 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_pStart++;
|
| }
|
| break;
|
| - case FDE_XMLSYNTAXMODE_SkipComment:
|
| + case FDE_XmlSyntaxState::SkipComment:
|
| if (FX_wcsnicmp(m_pStart, L"-->", 3) == 0) {
|
| m_pStart += 2;
|
| - m_dwMode = FDE_XMLSYNTAXMODE_Text;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::Text;
|
| }
|
|
|
| m_pStart++;
|
| break;
|
| - case FDE_XMLSYNTAXMODE_TargetData:
|
| + case FDE_XmlSyntaxState::TargetData:
|
| if (FDE_IsXMLWhiteSpace(ch)) {
|
| if (m_iDataLength < 1) {
|
| m_pStart++;
|
| @@ -1905,12 +1907,12 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| m_pStart++;
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_TargetData;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::TargetData;
|
| break;
|
| }
|
| }
|
| if (ch == '?') {
|
| - m_dwMode = FDE_XMLSYNTAXMODE_CloseInstruction;
|
| + m_syntaxParserState = FDE_XmlSyntaxState::CloseInstruction;
|
| m_pStart++;
|
| } else if (ch == '\"') {
|
| if (m_wQuotationMark == 0) {
|
| @@ -1923,17 +1925,17 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| m_pStart++;
|
| - dwStatus = FDE_XMLSYNTAXSTATUS_TargetData;
|
| + syntaxParserResult = FDE_XmlSyntaxResult::TargetData;
|
| } else {
|
| - m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
|
| - return m_dwStatus;
|
| + m_syntaxParserResult = FDE_XmlSyntaxResult::Error;
|
| + return m_syntaxParserResult;
|
| }
|
| } else {
|
| if (m_iIndexInBlock == m_iAllocStep) {
|
| m_pCurrentBlock =
|
| m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
|
| if (!m_pCurrentBlock) {
|
| - return FDE_XMLSYNTAXSTATUS_Error;
|
| + return FDE_XmlSyntaxResult::Error;
|
| }
|
| }
|
| m_pCurrentBlock[m_iIndexInBlock++] = ch;
|
| @@ -1944,11 +1946,11 @@ uint32_t CFDE_XMLSyntaxParser::DoSyntaxParse() {
|
| default:
|
| break;
|
| }
|
| - if (dwStatus != FDE_XMLSYNTAXSTATUS_None)
|
| - return dwStatus;
|
| + if (syntaxParserResult != FDE_XmlSyntaxResult::None)
|
| + return syntaxParserResult;
|
| }
|
| }
|
| - return 0;
|
| + return FDE_XmlSyntaxResult::Text;
|
| }
|
|
|
| CFDE_XMLSyntaxParser::~CFDE_XMLSyntaxParser() {
|
| @@ -1966,10 +1968,10 @@ int32_t CFDE_XMLSyntaxParser::GetStatus() const {
|
| if (iStreamLength < 1) {
|
| return 100;
|
| }
|
| - if (m_dwStatus == FDE_XMLSYNTAXSTATUS_Error) {
|
| + if (m_syntaxParserResult == FDE_XmlSyntaxResult::Error) {
|
| return -1;
|
| }
|
| - if (m_dwStatus == FDE_XMLSYNTAXSTATUS_EOS) {
|
| + if (m_syntaxParserResult == FDE_XmlSyntaxResult::EndOfString) {
|
| return 100;
|
| }
|
| return m_iParsedBytes * 100 / iStreamLength;
|
|
|