| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
| 6 | |
| 7 #ifndef XFA_FXFA_PARSER_XFA_SCRIPT_RESOLVEPROCESSOR_H_ | |
| 8 #define XFA_FXFA_PARSER_XFA_SCRIPT_RESOLVEPROCESSOR_H_ | |
| 9 | |
| 10 #include "xfa/fxfa/parser/xfa_object.h" | |
| 11 #include "xfa/fxfa/parser/xfa_script.h" | |
| 12 | |
| 13 class CXFA_NodeHelper; | |
| 14 class CXFA_ScriptContext; | |
| 15 | |
| 16 class CXFA_ResolveNodesData { | |
| 17 public: | |
| 18 CXFA_ResolveNodesData(CXFA_ScriptContext* pSC = nullptr); | |
| 19 ~CXFA_ResolveNodesData(); | |
| 20 | |
| 21 CXFA_ScriptContext* m_pSC; | |
| 22 CXFA_Object* m_CurNode; | |
| 23 CFX_WideString m_wsName; | |
| 24 XFA_HashCode m_uHashName; | |
| 25 CFX_WideString m_wsCondition; | |
| 26 int32_t m_nLevel; | |
| 27 CXFA_ObjArray m_Nodes; | |
| 28 uint32_t m_dwStyles; | |
| 29 const XFA_SCRIPTATTRIBUTEINFO* m_pScriptAttribute; | |
| 30 XFA_RESOVENODE_RSTYPE m_dwFlag; | |
| 31 }; | |
| 32 | |
| 33 class CXFA_ResolveProcessor { | |
| 34 public: | |
| 35 CXFA_ResolveProcessor(); | |
| 36 ~CXFA_ResolveProcessor(); | |
| 37 | |
| 38 int32_t Resolve(CXFA_ResolveNodesData& rnd); | |
| 39 int32_t GetFilter(const CFX_WideStringC& wsExpression, | |
| 40 int32_t nStart, | |
| 41 CXFA_ResolveNodesData& rnd); | |
| 42 int32_t SetResultCreateNode(XFA_RESOLVENODE_RS& resolveNodeRS, | |
| 43 CFX_WideString& wsLastCondition); | |
| 44 void SetIndexDataBind(CFX_WideString& wsNextCondition, | |
| 45 int32_t& iIndex, | |
| 46 int32_t iCount); | |
| 47 void SetCurStart(int32_t start) { m_iCurStart = start; } | |
| 48 | |
| 49 CXFA_NodeHelper* GetNodeHelper() { return m_pNodeHelper; } | |
| 50 | |
| 51 private: | |
| 52 int32_t ResolveForAttributeRs(CXFA_Object* curNode, | |
| 53 CXFA_ResolveNodesData& rnd, | |
| 54 const CFX_WideStringC& strAttr); | |
| 55 int32_t ResolveAnyChild(CXFA_ResolveNodesData& rnd); | |
| 56 int32_t ResolveDollar(CXFA_ResolveNodesData& rnd); | |
| 57 int32_t ResolveExcalmatory(CXFA_ResolveNodesData& rnd); | |
| 58 int32_t ResolveNumberSign(CXFA_ResolveNodesData& rnd); | |
| 59 int32_t ResolveAsterisk(CXFA_ResolveNodesData& rnd); | |
| 60 int32_t ResolveNormal(CXFA_ResolveNodesData& rnd); | |
| 61 int32_t ResolvePopStack(CFX_Int32Array& stack); | |
| 62 void SetStylesForChild(uint32_t dwParentStyles, CXFA_ResolveNodesData& rnd); | |
| 63 | |
| 64 void ConditionArray(int32_t iCurIndex, | |
| 65 CFX_WideString wsCondition, | |
| 66 int32_t iFoundCount, | |
| 67 CXFA_ResolveNodesData& rnd); | |
| 68 void DoPredicateFilter(int32_t iCurIndex, | |
| 69 CFX_WideString wsCondition, | |
| 70 int32_t iFoundCount, | |
| 71 CXFA_ResolveNodesData& rnd); | |
| 72 void FilterCondition(CXFA_ResolveNodesData& rnd, CFX_WideString wsCondition); | |
| 73 | |
| 74 int32_t m_iCurStart; | |
| 75 CXFA_NodeHelper* m_pNodeHelper; | |
| 76 }; | |
| 77 | |
| 78 #endif // XFA_FXFA_PARSER_XFA_SCRIPT_RESOLVEPROCESSOR_H_ | |
| OLD | NEW |