| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #ifndef XFA_FXFA_FM2JS_XFA_EXPRESSION_H_ | 7 #ifndef XFA_FXFA_FM2JS_XFA_EXPRESSION_H_ |
| 8 #define XFA_FXFA_FM2JS_XFA_EXPRESSION_H_ | 8 #define XFA_FXFA_FM2JS_XFA_EXPRESSION_H_ |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 CFX_WideStringC m_wsName; | 56 CFX_WideStringC m_wsName; |
| 57 std::unique_ptr<CFX_WideStringCArray> m_pArguments; | 57 std::unique_ptr<CFX_WideStringCArray> m_pArguments; |
| 58 std::vector<std::unique_ptr<CXFA_FMExpression>> m_pExpressions; | 58 std::vector<std::unique_ptr<CXFA_FMExpression>> m_pExpressions; |
| 59 bool m_isGlobal; | 59 bool m_isGlobal; |
| 60 }; | 60 }; |
| 61 | 61 |
| 62 class CXFA_FMVarExpression : public CXFA_FMExpression { | 62 class CXFA_FMVarExpression : public CXFA_FMExpression { |
| 63 public: | 63 public: |
| 64 CXFA_FMVarExpression(uint32_t line, | 64 CXFA_FMVarExpression(uint32_t line, |
| 65 const CFX_WideStringC& wsName, | 65 const CFX_WideStringC& wsName, |
| 66 CXFA_FMExpression* pInit); | 66 std::unique_ptr<CXFA_FMExpression> pInit); |
| 67 ~CXFA_FMVarExpression() override; | 67 ~CXFA_FMVarExpression() override; |
| 68 | 68 |
| 69 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 69 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 70 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 70 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 71 | 71 |
| 72 private: | 72 private: |
| 73 CFX_WideStringC m_wsName; | 73 CFX_WideStringC m_wsName; |
| 74 std::unique_ptr<CXFA_FMExpression> m_pInit; | 74 std::unique_ptr<CXFA_FMExpression> m_pInit; |
| 75 }; | 75 }; |
| 76 | 76 |
| 77 class CXFA_FMExpExpression : public CXFA_FMExpression { | 77 class CXFA_FMExpExpression : public CXFA_FMExpression { |
| 78 public: | 78 public: |
| 79 CXFA_FMExpExpression(uint32_t line, CXFA_FMSimpleExpression* pExpression); | 79 CXFA_FMExpExpression(uint32_t line, |
| 80 std::unique_ptr<CXFA_FMSimpleExpression> pExpression); |
| 80 ~CXFA_FMExpExpression() override; | 81 ~CXFA_FMExpExpression() override; |
| 81 | 82 |
| 82 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 83 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 83 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 84 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 84 | 85 |
| 85 private: | 86 private: |
| 86 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression; | 87 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression; |
| 87 }; | 88 }; |
| 88 | 89 |
| 89 class CXFA_FMBlockExpression : public CXFA_FMExpression { | 90 class CXFA_FMBlockExpression : public CXFA_FMExpression { |
| 90 public: | 91 public: |
| 91 CXFA_FMBlockExpression( | 92 CXFA_FMBlockExpression( |
| 92 uint32_t line, | 93 uint32_t line, |
| 93 std::vector<std::unique_ptr<CXFA_FMExpression>>&& pExpressionList); | 94 std::vector<std::unique_ptr<CXFA_FMExpression>>&& pExpressionList); |
| 94 ~CXFA_FMBlockExpression() override; | 95 ~CXFA_FMBlockExpression() override; |
| 95 | 96 |
| 96 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 97 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 97 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 98 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 98 | 99 |
| 99 private: | 100 private: |
| 100 std::vector<std::unique_ptr<CXFA_FMExpression>> m_ExpressionList; | 101 std::vector<std::unique_ptr<CXFA_FMExpression>> m_ExpressionList; |
| 101 }; | 102 }; |
| 102 | 103 |
| 103 class CXFA_FMDoExpression : public CXFA_FMExpression { | 104 class CXFA_FMDoExpression : public CXFA_FMExpression { |
| 104 public: | 105 public: |
| 105 CXFA_FMDoExpression(uint32_t line, CXFA_FMExpression* pList); | 106 CXFA_FMDoExpression(uint32_t line, std::unique_ptr<CXFA_FMExpression> pList); |
| 106 ~CXFA_FMDoExpression() override; | 107 ~CXFA_FMDoExpression() override; |
| 107 | 108 |
| 108 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 109 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 109 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 110 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 110 | 111 |
| 111 private: | 112 private: |
| 112 std::unique_ptr<CXFA_FMExpression> m_pList; | 113 std::unique_ptr<CXFA_FMExpression> m_pList; |
| 113 }; | 114 }; |
| 114 | 115 |
| 115 class CXFA_FMIfExpression : public CXFA_FMExpression { | 116 class CXFA_FMIfExpression : public CXFA_FMExpression { |
| 116 public: | 117 public: |
| 117 CXFA_FMIfExpression(uint32_t line, | 118 CXFA_FMIfExpression(uint32_t line, |
| 118 CXFA_FMSimpleExpression* pExpression, | 119 std::unique_ptr<CXFA_FMSimpleExpression> pExpression, |
| 119 CXFA_FMExpression* pIfExpression, | 120 std::unique_ptr<CXFA_FMExpression> pIfExpression, |
| 120 CXFA_FMExpression* pElseExpression); | 121 std::unique_ptr<CXFA_FMExpression> pElseExpression); |
| 121 ~CXFA_FMIfExpression() override; | 122 ~CXFA_FMIfExpression() override; |
| 122 | 123 |
| 123 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 124 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 124 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 125 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 125 | 126 |
| 126 private: | 127 private: |
| 127 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression; | 128 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression; |
| 128 std::unique_ptr<CXFA_FMExpression> m_pIfExpression; | 129 std::unique_ptr<CXFA_FMExpression> m_pIfExpression; |
| 129 std::unique_ptr<CXFA_FMExpression> m_pElseExpression; | 130 std::unique_ptr<CXFA_FMExpression> m_pElseExpression; |
| 130 }; | 131 }; |
| 131 | 132 |
| 132 class CXFA_FMLoopExpression : public CXFA_FMExpression { | 133 class CXFA_FMLoopExpression : public CXFA_FMExpression { |
| 133 public: | 134 public: |
| 134 explicit CXFA_FMLoopExpression(uint32_t line) : CXFA_FMExpression(line) {} | 135 explicit CXFA_FMLoopExpression(uint32_t line) : CXFA_FMExpression(line) {} |
| 135 ~CXFA_FMLoopExpression() override; | 136 ~CXFA_FMLoopExpression() override; |
| 136 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 137 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 137 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 138 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 138 }; | 139 }; |
| 139 | 140 |
| 140 class CXFA_FMWhileExpression : public CXFA_FMLoopExpression { | 141 class CXFA_FMWhileExpression : public CXFA_FMLoopExpression { |
| 141 public: | 142 public: |
| 142 CXFA_FMWhileExpression(uint32_t line, | 143 CXFA_FMWhileExpression(uint32_t line, |
| 143 CXFA_FMSimpleExpression* pCodition, | 144 std::unique_ptr<CXFA_FMSimpleExpression> pCodition, |
| 144 CXFA_FMExpression* pExpression); | 145 std::unique_ptr<CXFA_FMExpression> pExpression); |
| 145 ~CXFA_FMWhileExpression() override; | 146 ~CXFA_FMWhileExpression() override; |
| 146 | 147 |
| 147 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 148 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 148 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 149 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 149 | 150 |
| 150 private: | 151 private: |
| 151 std::unique_ptr<CXFA_FMSimpleExpression> m_pCondition; | 152 std::unique_ptr<CXFA_FMSimpleExpression> m_pCondition; |
| 152 std::unique_ptr<CXFA_FMExpression> m_pExpression; | 153 std::unique_ptr<CXFA_FMExpression> m_pExpression; |
| 153 }; | 154 }; |
| 154 | 155 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 165 explicit CXFA_FMContinueExpression(uint32_t line); | 166 explicit CXFA_FMContinueExpression(uint32_t line); |
| 166 ~CXFA_FMContinueExpression() override; | 167 ~CXFA_FMContinueExpression() override; |
| 167 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 168 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 168 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 169 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 169 }; | 170 }; |
| 170 | 171 |
| 171 class CXFA_FMForExpression : public CXFA_FMLoopExpression { | 172 class CXFA_FMForExpression : public CXFA_FMLoopExpression { |
| 172 public: | 173 public: |
| 173 CXFA_FMForExpression(uint32_t line, | 174 CXFA_FMForExpression(uint32_t line, |
| 174 const CFX_WideStringC& wsVariant, | 175 const CFX_WideStringC& wsVariant, |
| 175 CXFA_FMSimpleExpression* pAssignment, | 176 std::unique_ptr<CXFA_FMSimpleExpression> pAssignment, |
| 176 CXFA_FMSimpleExpression* pAccessor, | 177 std::unique_ptr<CXFA_FMSimpleExpression> pAccessor, |
| 177 int32_t iDirection, | 178 int32_t iDirection, |
| 178 CXFA_FMSimpleExpression* pStep, | 179 std::unique_ptr<CXFA_FMSimpleExpression> pStep, |
| 179 CXFA_FMExpression* pList); | 180 std::unique_ptr<CXFA_FMExpression> pList); |
| 180 ~CXFA_FMForExpression() override; | 181 ~CXFA_FMForExpression() override; |
| 181 | 182 |
| 182 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 183 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 183 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 184 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 184 | 185 |
| 185 private: | 186 private: |
| 186 CFX_WideStringC m_wsVariant; | 187 CFX_WideStringC m_wsVariant; |
| 187 std::unique_ptr<CXFA_FMSimpleExpression> m_pAssignment; | 188 std::unique_ptr<CXFA_FMSimpleExpression> m_pAssignment; |
| 188 std::unique_ptr<CXFA_FMSimpleExpression> m_pAccessor; | 189 std::unique_ptr<CXFA_FMSimpleExpression> m_pAccessor; |
| 189 int32_t m_iDirection; | 190 int32_t m_iDirection; |
| 190 std::unique_ptr<CXFA_FMSimpleExpression> m_pStep; | 191 std::unique_ptr<CXFA_FMSimpleExpression> m_pStep; |
| 191 std::unique_ptr<CXFA_FMExpression> m_pList; | 192 std::unique_ptr<CXFA_FMExpression> m_pList; |
| 192 }; | 193 }; |
| 193 | 194 |
| 194 class CXFA_FMForeachExpression : public CXFA_FMLoopExpression { | 195 class CXFA_FMForeachExpression : public CXFA_FMLoopExpression { |
| 195 public: | 196 public: |
| 196 // Takes ownership of |pAccessors|. | 197 // Takes ownership of |pAccessors|. |
| 197 CXFA_FMForeachExpression( | 198 CXFA_FMForeachExpression( |
| 198 uint32_t line, | 199 uint32_t line, |
| 199 const CFX_WideStringC& wsIdentifier, | 200 const CFX_WideStringC& wsIdentifier, |
| 200 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>>&& pAccessors, | 201 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>>&& pAccessors, |
| 201 CXFA_FMExpression* pList); | 202 std::unique_ptr<CXFA_FMExpression> pList); |
| 202 ~CXFA_FMForeachExpression() override; | 203 ~CXFA_FMForeachExpression() override; |
| 203 | 204 |
| 204 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 205 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 205 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 206 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 206 | 207 |
| 207 private: | 208 private: |
| 208 CFX_WideStringC m_wsIdentifier; | 209 CFX_WideStringC m_wsIdentifier; |
| 209 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>> m_pAccessors; | 210 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>> m_pAccessors; |
| 210 std::unique_ptr<CXFA_FMExpression> m_pList; | 211 std::unique_ptr<CXFA_FMExpression> m_pList; |
| 211 }; | 212 }; |
| 212 | 213 |
| 213 #endif // XFA_FXFA_FM2JS_XFA_EXPRESSION_H_ | 214 #endif // XFA_FXFA_FM2JS_XFA_EXPRESSION_H_ |
| OLD | NEW |