| 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_WideStringCArray* m_pArguments; | 56 CFX_WideStringCArray* m_pArguments; |
| 57 CFX_ArrayTemplate<CXFA_FMExpression*>* m_pExpressions; | 57 CFX_ArrayTemplate<CXFA_FMExpression*>* m_pExpressions; |
| 58 FX_BOOL m_isGlobal; | 58 FX_BOOL m_isGlobal; |
| 59 }; | 59 }; |
| 60 | 60 |
| 61 class CXFA_FMVarExpression : public CXFA_FMExpression { | 61 class CXFA_FMVarExpression : public CXFA_FMExpression { |
| 62 public: | 62 public: |
| 63 CXFA_FMVarExpression(uint32_t line, | 63 CXFA_FMVarExpression(uint32_t line, |
| 64 const CFX_WideStringC& wsName, | 64 const CFX_WideStringC& wsName, |
| 65 CXFA_FMExpression* pInit); | 65 CXFA_FMExpression* pInit); |
| 66 ~CXFA_FMVarExpression() override; |
| 67 |
| 66 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 68 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 67 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 69 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 68 | 70 |
| 69 private: | 71 private: |
| 70 CFX_WideStringC m_wsName; | 72 CFX_WideStringC m_wsName; |
| 71 std::unique_ptr<CXFA_FMExpression> m_pInit; | 73 std::unique_ptr<CXFA_FMExpression> m_pInit; |
| 72 }; | 74 }; |
| 73 | 75 |
| 74 class CXFA_FMExpExpression : public CXFA_FMExpression { | 76 class CXFA_FMExpExpression : public CXFA_FMExpression { |
| 75 public: | 77 public: |
| 76 CXFA_FMExpExpression(uint32_t line, CXFA_FMSimpleExpression* pExpression); | 78 CXFA_FMExpExpression(uint32_t line, CXFA_FMSimpleExpression* pExpression); |
| 79 ~CXFA_FMExpExpression() override; |
| 80 |
| 77 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 81 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 78 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 82 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 79 | 83 |
| 80 private: | 84 private: |
| 81 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression; | 85 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression; |
| 82 }; | 86 }; |
| 83 | 87 |
| 84 class CXFA_FMBlockExpression : public CXFA_FMExpression { | 88 class CXFA_FMBlockExpression : public CXFA_FMExpression { |
| 85 public: | 89 public: |
| 86 // Takes ownership of |pExpressionList|. | 90 // Takes ownership of |pExpressionList|. |
| 87 CXFA_FMBlockExpression( | 91 CXFA_FMBlockExpression( |
| 88 uint32_t line, | 92 uint32_t line, |
| 89 CFX_ArrayTemplate<CXFA_FMExpression*>* pExpressionList); | 93 CFX_ArrayTemplate<CXFA_FMExpression*>* pExpressionList); |
| 90 ~CXFA_FMBlockExpression() override; | 94 ~CXFA_FMBlockExpression() override; |
| 91 | 95 |
| 92 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 96 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 93 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 97 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 94 | 98 |
| 95 private: | 99 private: |
| 96 CFX_ArrayTemplate<CXFA_FMExpression*>* m_pExpressionList; | 100 CFX_ArrayTemplate<CXFA_FMExpression*>* m_pExpressionList; |
| 97 }; | 101 }; |
| 98 | 102 |
| 99 class CXFA_FMDoExpression : public CXFA_FMExpression { | 103 class CXFA_FMDoExpression : public CXFA_FMExpression { |
| 100 public: | 104 public: |
| 101 CXFA_FMDoExpression(uint32_t line, CXFA_FMExpression* pList); | 105 CXFA_FMDoExpression(uint32_t line, CXFA_FMExpression* pList); |
| 106 ~CXFA_FMDoExpression() override; |
| 107 |
| 102 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 108 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 103 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 109 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 104 | 110 |
| 105 private: | 111 private: |
| 106 std::unique_ptr<CXFA_FMExpression> m_pList; | 112 std::unique_ptr<CXFA_FMExpression> m_pList; |
| 107 }; | 113 }; |
| 108 | 114 |
| 109 class CXFA_FMIfExpression : public CXFA_FMExpression { | 115 class CXFA_FMIfExpression : public CXFA_FMExpression { |
| 110 public: | 116 public: |
| 111 CXFA_FMIfExpression(uint32_t line, | 117 CXFA_FMIfExpression(uint32_t line, |
| 112 CXFA_FMSimpleExpression* pExpression, | 118 CXFA_FMSimpleExpression* pExpression, |
| 113 CXFA_FMExpression* pIfExpression, | 119 CXFA_FMExpression* pIfExpression, |
| 114 CXFA_FMExpression* pElseExpression); | 120 CXFA_FMExpression* pElseExpression); |
| 121 ~CXFA_FMIfExpression() override; |
| 122 |
| 115 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 123 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 116 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 124 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 117 | 125 |
| 118 private: | 126 private: |
| 119 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression; | 127 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression; |
| 120 std::unique_ptr<CXFA_FMExpression> m_pIfExpression; | 128 std::unique_ptr<CXFA_FMExpression> m_pIfExpression; |
| 121 std::unique_ptr<CXFA_FMExpression> m_pElseExpression; | 129 std::unique_ptr<CXFA_FMExpression> m_pElseExpression; |
| 122 }; | 130 }; |
| 123 | 131 |
| 124 class CXFA_FMLoopExpression : public CXFA_FMExpression { | 132 class CXFA_FMLoopExpression : public CXFA_FMExpression { |
| 125 public: | 133 public: |
| 126 explicit CXFA_FMLoopExpression(uint32_t line) : CXFA_FMExpression(line) {} | 134 explicit CXFA_FMLoopExpression(uint32_t line) : CXFA_FMExpression(line) {} |
| 127 ~CXFA_FMLoopExpression() override; | 135 ~CXFA_FMLoopExpression() override; |
| 128 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 136 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 129 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 137 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 130 }; | 138 }; |
| 131 | 139 |
| 132 class CXFA_FMWhileExpression : public CXFA_FMLoopExpression { | 140 class CXFA_FMWhileExpression : public CXFA_FMLoopExpression { |
| 133 public: | 141 public: |
| 134 CXFA_FMWhileExpression(uint32_t line, | 142 CXFA_FMWhileExpression(uint32_t line, |
| 135 CXFA_FMSimpleExpression* pCodition, | 143 CXFA_FMSimpleExpression* pCodition, |
| 136 CXFA_FMExpression* pExpression); | 144 CXFA_FMExpression* pExpression); |
| 145 ~CXFA_FMWhileExpression() override; |
| 146 |
| 137 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 147 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 138 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 148 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 139 | 149 |
| 140 private: | 150 private: |
| 141 std::unique_ptr<CXFA_FMSimpleExpression> m_pCondition; | 151 std::unique_ptr<CXFA_FMSimpleExpression> m_pCondition; |
| 142 std::unique_ptr<CXFA_FMExpression> m_pExpression; | 152 std::unique_ptr<CXFA_FMExpression> m_pExpression; |
| 143 }; | 153 }; |
| 144 | 154 |
| 145 class CXFA_FMBreakExpression : public CXFA_FMExpression { | 155 class CXFA_FMBreakExpression : public CXFA_FMExpression { |
| 146 public: | 156 public: |
| (...skipping 13 matching lines...) Expand all Loading... |
| 160 | 170 |
| 161 class CXFA_FMForExpression : public CXFA_FMLoopExpression { | 171 class CXFA_FMForExpression : public CXFA_FMLoopExpression { |
| 162 public: | 172 public: |
| 163 CXFA_FMForExpression(uint32_t line, | 173 CXFA_FMForExpression(uint32_t line, |
| 164 const CFX_WideStringC& wsVariant, | 174 const CFX_WideStringC& wsVariant, |
| 165 CXFA_FMSimpleExpression* pAssignment, | 175 CXFA_FMSimpleExpression* pAssignment, |
| 166 CXFA_FMSimpleExpression* pAccessor, | 176 CXFA_FMSimpleExpression* pAccessor, |
| 167 int32_t iDirection, | 177 int32_t iDirection, |
| 168 CXFA_FMSimpleExpression* pStep, | 178 CXFA_FMSimpleExpression* pStep, |
| 169 CXFA_FMExpression* pList); | 179 CXFA_FMExpression* pList); |
| 180 ~CXFA_FMForExpression() override; |
| 181 |
| 170 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 182 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 171 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 183 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 172 | 184 |
| 173 private: | 185 private: |
| 174 CFX_WideStringC m_wsVariant; | 186 CFX_WideStringC m_wsVariant; |
| 175 std::unique_ptr<CXFA_FMSimpleExpression> m_pAssignment; | 187 std::unique_ptr<CXFA_FMSimpleExpression> m_pAssignment; |
| 176 std::unique_ptr<CXFA_FMSimpleExpression> m_pAccessor; | 188 std::unique_ptr<CXFA_FMSimpleExpression> m_pAccessor; |
| 177 int32_t m_iDirection; | 189 int32_t m_iDirection; |
| 178 std::unique_ptr<CXFA_FMSimpleExpression> m_pStep; | 190 std::unique_ptr<CXFA_FMSimpleExpression> m_pStep; |
| 179 std::unique_ptr<CXFA_FMExpression> m_pList; | 191 std::unique_ptr<CXFA_FMExpression> m_pList; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 192 void ToJavaScript(CFX_WideTextBuf& javascript) override; | 204 void ToJavaScript(CFX_WideTextBuf& javascript) override; |
| 193 void ToImpliedReturnJS(CFX_WideTextBuf&) override; | 205 void ToImpliedReturnJS(CFX_WideTextBuf&) override; |
| 194 | 206 |
| 195 private: | 207 private: |
| 196 CFX_WideStringC m_wsIdentifier; | 208 CFX_WideStringC m_wsIdentifier; |
| 197 CFX_ArrayTemplate<CXFA_FMSimpleExpression*>* m_pAccessors; | 209 CFX_ArrayTemplate<CXFA_FMSimpleExpression*>* m_pAccessors; |
| 198 std::unique_ptr<CXFA_FMExpression> m_pList; | 210 std::unique_ptr<CXFA_FMExpression> m_pList; |
| 199 }; | 211 }; |
| 200 | 212 |
| 201 #endif // XFA_FXFA_FM2JS_XFA_EXPRESSION_H_ | 213 #endif // XFA_FXFA_FM2JS_XFA_EXPRESSION_H_ |
| OLD | NEW |