Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(87)

Side by Side Diff: xfa/fxfa/fm2js/xfa_simpleexpression.h

Issue 2534143003: Use unique_ptr in CFXA_FM expressions (Closed)
Patch Set: Comments Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fxfa/fm2js/xfa_fmparse.cpp ('k') | xfa/fxfa/fm2js/xfa_simpleexpression.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_SIMPLEEXPRESSION_H_ 7 #ifndef XFA_FXFA_FM2JS_XFA_SIMPLEEXPRESSION_H_
8 #define XFA_FXFA_FM2JS_XFA_SIMPLEEXPRESSION_H_ 8 #define XFA_FXFA_FM2JS_XFA_SIMPLEEXPRESSION_H_
9 9
10 #include <memory> 10 #include <memory>
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 void ToJavaScript(CFX_WideTextBuf& javascript) override; 104 void ToJavaScript(CFX_WideTextBuf& javascript) override;
105 105
106 private: 106 private:
107 CFX_WideStringC m_wsIdentifier; 107 CFX_WideStringC m_wsIdentifier;
108 }; 108 };
109 109
110 class CXFA_FMUnaryExpression : public CXFA_FMSimpleExpression { 110 class CXFA_FMUnaryExpression : public CXFA_FMSimpleExpression {
111 public: 111 public:
112 CXFA_FMUnaryExpression(uint32_t line, 112 CXFA_FMUnaryExpression(uint32_t line,
113 XFA_FM_TOKEN op, 113 XFA_FM_TOKEN op,
114 CXFA_FMSimpleExpression* pExp); 114 std::unique_ptr<CXFA_FMSimpleExpression> pExp);
115 ~CXFA_FMUnaryExpression() override; 115 ~CXFA_FMUnaryExpression() override;
116 116
117 void ToJavaScript(CFX_WideTextBuf& javascript) override; 117 void ToJavaScript(CFX_WideTextBuf& javascript) override;
118 118
119 protected: 119 protected:
120 std::unique_ptr<CXFA_FMSimpleExpression> m_pExp; 120 std::unique_ptr<CXFA_FMSimpleExpression> m_pExp;
121 }; 121 };
122 122
123 class CXFA_FMBinExpression : public CXFA_FMSimpleExpression { 123 class CXFA_FMBinExpression : public CXFA_FMSimpleExpression {
124 public: 124 public:
125 CXFA_FMBinExpression(uint32_t line, 125 CXFA_FMBinExpression(uint32_t line,
126 XFA_FM_TOKEN op, 126 XFA_FM_TOKEN op,
127 CXFA_FMSimpleExpression* pExp1, 127 std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
128 CXFA_FMSimpleExpression* pExp2); 128 std::unique_ptr<CXFA_FMSimpleExpression> pExp2);
129 ~CXFA_FMBinExpression() override; 129 ~CXFA_FMBinExpression() override;
130 130
131 void ToJavaScript(CFX_WideTextBuf& javascript) override; 131 void ToJavaScript(CFX_WideTextBuf& javascript) override;
132 132
133 protected: 133 protected:
134 std::unique_ptr<CXFA_FMSimpleExpression> m_pExp1; 134 std::unique_ptr<CXFA_FMSimpleExpression> m_pExp1;
135 std::unique_ptr<CXFA_FMSimpleExpression> m_pExp2; 135 std::unique_ptr<CXFA_FMSimpleExpression> m_pExp2;
136 }; 136 };
137 137
138 class CXFA_FMAssignExpression : public CXFA_FMBinExpression { 138 class CXFA_FMAssignExpression : public CXFA_FMBinExpression {
139 public: 139 public:
140 CXFA_FMAssignExpression(uint32_t line, 140 CXFA_FMAssignExpression(uint32_t line,
141 XFA_FM_TOKEN op, 141 XFA_FM_TOKEN op,
142 CXFA_FMSimpleExpression* pExp1, 142 std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
143 CXFA_FMSimpleExpression* pExp2); 143 std::unique_ptr<CXFA_FMSimpleExpression> pExp2);
144 ~CXFA_FMAssignExpression() override {} 144 ~CXFA_FMAssignExpression() override {}
145 void ToJavaScript(CFX_WideTextBuf& javascript) override; 145 void ToJavaScript(CFX_WideTextBuf& javascript) override;
146 void ToImpliedReturnJS(CFX_WideTextBuf& javascript) override; 146 void ToImpliedReturnJS(CFX_WideTextBuf& javascript) override;
147 }; 147 };
148 148
149 class CXFA_FMLogicalOrExpression : public CXFA_FMBinExpression { 149 class CXFA_FMLogicalOrExpression : public CXFA_FMBinExpression {
150 public: 150 public:
151 CXFA_FMLogicalOrExpression(uint32_t line, 151 CXFA_FMLogicalOrExpression(uint32_t line,
152 XFA_FM_TOKEN op, 152 XFA_FM_TOKEN op,
153 CXFA_FMSimpleExpression* pExp1, 153 std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
154 CXFA_FMSimpleExpression* pExp2); 154 std::unique_ptr<CXFA_FMSimpleExpression> pExp2);
155 ~CXFA_FMLogicalOrExpression() override {} 155 ~CXFA_FMLogicalOrExpression() override {}
156 void ToJavaScript(CFX_WideTextBuf& javascript) override; 156 void ToJavaScript(CFX_WideTextBuf& javascript) override;
157 }; 157 };
158 158
159 class CXFA_FMLogicalAndExpression : public CXFA_FMBinExpression { 159 class CXFA_FMLogicalAndExpression : public CXFA_FMBinExpression {
160 public: 160 public:
161 CXFA_FMLogicalAndExpression(uint32_t line, 161 CXFA_FMLogicalAndExpression(uint32_t line,
162 XFA_FM_TOKEN op, 162 XFA_FM_TOKEN op,
163 CXFA_FMSimpleExpression* pExp1, 163 std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
164 CXFA_FMSimpleExpression* pExp2); 164 std::unique_ptr<CXFA_FMSimpleExpression> pExp2);
165 ~CXFA_FMLogicalAndExpression() override {} 165 ~CXFA_FMLogicalAndExpression() override {}
166 void ToJavaScript(CFX_WideTextBuf& javascript) override; 166 void ToJavaScript(CFX_WideTextBuf& javascript) override;
167 }; 167 };
168 168
169 class CXFA_FMEqualityExpression : public CXFA_FMBinExpression { 169 class CXFA_FMEqualityExpression : public CXFA_FMBinExpression {
170 public: 170 public:
171 CXFA_FMEqualityExpression(uint32_t line, 171 CXFA_FMEqualityExpression(uint32_t line,
172 XFA_FM_TOKEN op, 172 XFA_FM_TOKEN op,
173 CXFA_FMSimpleExpression* pExp1, 173 std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
174 CXFA_FMSimpleExpression* pExp2); 174 std::unique_ptr<CXFA_FMSimpleExpression> pExp2);
175 ~CXFA_FMEqualityExpression() override {} 175 ~CXFA_FMEqualityExpression() override {}
176 void ToJavaScript(CFX_WideTextBuf& javascript) override; 176 void ToJavaScript(CFX_WideTextBuf& javascript) override;
177 }; 177 };
178 178
179 class CXFA_FMRelationalExpression : public CXFA_FMBinExpression { 179 class CXFA_FMRelationalExpression : public CXFA_FMBinExpression {
180 public: 180 public:
181 CXFA_FMRelationalExpression(uint32_t line, 181 CXFA_FMRelationalExpression(uint32_t line,
182 XFA_FM_TOKEN op, 182 XFA_FM_TOKEN op,
183 CXFA_FMSimpleExpression* pExp1, 183 std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
184 CXFA_FMSimpleExpression* pExp2); 184 std::unique_ptr<CXFA_FMSimpleExpression> pExp2);
185 ~CXFA_FMRelationalExpression() override {} 185 ~CXFA_FMRelationalExpression() override {}
186 void ToJavaScript(CFX_WideTextBuf& javascript) override; 186 void ToJavaScript(CFX_WideTextBuf& javascript) override;
187 }; 187 };
188 188
189 class CXFA_FMAdditiveExpression : public CXFA_FMBinExpression { 189 class CXFA_FMAdditiveExpression : public CXFA_FMBinExpression {
190 public: 190 public:
191 CXFA_FMAdditiveExpression(uint32_t line, 191 CXFA_FMAdditiveExpression(uint32_t line,
192 XFA_FM_TOKEN op, 192 XFA_FM_TOKEN op,
193 CXFA_FMSimpleExpression* pExp1, 193 std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
194 CXFA_FMSimpleExpression* pExp2); 194 std::unique_ptr<CXFA_FMSimpleExpression> pExp2);
195 ~CXFA_FMAdditiveExpression() override {} 195 ~CXFA_FMAdditiveExpression() override {}
196 void ToJavaScript(CFX_WideTextBuf& javascript) override; 196 void ToJavaScript(CFX_WideTextBuf& javascript) override;
197 }; 197 };
198 198
199 class CXFA_FMMultiplicativeExpression : public CXFA_FMBinExpression { 199 class CXFA_FMMultiplicativeExpression : public CXFA_FMBinExpression {
200 public: 200 public:
201 CXFA_FMMultiplicativeExpression(uint32_t line, 201 CXFA_FMMultiplicativeExpression(
202 XFA_FM_TOKEN op, 202 uint32_t line,
203 CXFA_FMSimpleExpression* pExp1, 203 XFA_FM_TOKEN op,
204 CXFA_FMSimpleExpression* pExp2); 204 std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
205 std::unique_ptr<CXFA_FMSimpleExpression> pExp2);
205 ~CXFA_FMMultiplicativeExpression() override {} 206 ~CXFA_FMMultiplicativeExpression() override {}
206 void ToJavaScript(CFX_WideTextBuf& javascript) override; 207 void ToJavaScript(CFX_WideTextBuf& javascript) override;
207 }; 208 };
208 209
209 class CXFA_FMPosExpression : public CXFA_FMUnaryExpression { 210 class CXFA_FMPosExpression : public CXFA_FMUnaryExpression {
210 public: 211 public:
211 CXFA_FMPosExpression(uint32_t line, CXFA_FMSimpleExpression* pExp); 212 CXFA_FMPosExpression(uint32_t line,
213 std::unique_ptr<CXFA_FMSimpleExpression> pExp);
212 ~CXFA_FMPosExpression() override {} 214 ~CXFA_FMPosExpression() override {}
213 void ToJavaScript(CFX_WideTextBuf& javascript) override; 215 void ToJavaScript(CFX_WideTextBuf& javascript) override;
214 }; 216 };
215 217
216 class CXFA_FMNegExpression : public CXFA_FMUnaryExpression { 218 class CXFA_FMNegExpression : public CXFA_FMUnaryExpression {
217 public: 219 public:
218 CXFA_FMNegExpression(uint32_t line, CXFA_FMSimpleExpression* pExp); 220 CXFA_FMNegExpression(uint32_t line,
221 std::unique_ptr<CXFA_FMSimpleExpression> pExp);
219 ~CXFA_FMNegExpression() override {} 222 ~CXFA_FMNegExpression() override {}
220 void ToJavaScript(CFX_WideTextBuf& javascript) override; 223 void ToJavaScript(CFX_WideTextBuf& javascript) override;
221 }; 224 };
222 225
223 class CXFA_FMNotExpression : public CXFA_FMUnaryExpression { 226 class CXFA_FMNotExpression : public CXFA_FMUnaryExpression {
224 public: 227 public:
225 CXFA_FMNotExpression(uint32_t line, CXFA_FMSimpleExpression* pExp); 228 CXFA_FMNotExpression(uint32_t line,
229 std::unique_ptr<CXFA_FMSimpleExpression> pExp);
226 ~CXFA_FMNotExpression() override {} 230 ~CXFA_FMNotExpression() override {}
227 void ToJavaScript(CFX_WideTextBuf& javascript) override; 231 void ToJavaScript(CFX_WideTextBuf& javascript) override;
228 }; 232 };
229 233
230 class CXFA_FMCallExpression : public CXFA_FMUnaryExpression { 234 class CXFA_FMCallExpression : public CXFA_FMUnaryExpression {
231 public: 235 public:
232 CXFA_FMCallExpression( 236 CXFA_FMCallExpression(
233 uint32_t line, 237 uint32_t line,
234 CXFA_FMSimpleExpression* pExp, 238 std::unique_ptr<CXFA_FMSimpleExpression> pExp,
235 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>>&& pArguments, 239 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>>&& pArguments,
236 bool bIsSomMethod); 240 bool bIsSomMethod);
237 ~CXFA_FMCallExpression() override; 241 ~CXFA_FMCallExpression() override;
238 242
239 bool IsBuildInFunc(CFX_WideTextBuf* funcName); 243 bool IsBuildInFunc(CFX_WideTextBuf* funcName);
240 uint32_t IsMethodWithObjParam(const CFX_WideStringC& methodName); 244 uint32_t IsMethodWithObjParam(const CFX_WideStringC& methodName);
241 void ToJavaScript(CFX_WideTextBuf& javascript) override; 245 void ToJavaScript(CFX_WideTextBuf& javascript) override;
242 246
243 private: 247 private:
244 bool m_bIsSomMethod; 248 bool m_bIsSomMethod;
245 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>> m_Arguments; 249 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>> m_Arguments;
246 }; 250 };
247 251
248 class CXFA_FMDotAccessorExpression : public CXFA_FMBinExpression { 252 class CXFA_FMDotAccessorExpression : public CXFA_FMBinExpression {
249 public: 253 public:
250 CXFA_FMDotAccessorExpression(uint32_t line, 254 CXFA_FMDotAccessorExpression(
251 CXFA_FMSimpleExpression* pAccessor, 255 uint32_t line,
252 XFA_FM_TOKEN op, 256 std::unique_ptr<CXFA_FMSimpleExpression> pAccessor,
253 CFX_WideStringC wsIdentifier, 257 XFA_FM_TOKEN op,
254 CXFA_FMSimpleExpression* pIndexExp); 258 CFX_WideStringC wsIdentifier,
259 std::unique_ptr<CXFA_FMSimpleExpression> pIndexExp);
255 ~CXFA_FMDotAccessorExpression() override; 260 ~CXFA_FMDotAccessorExpression() override;
256 void ToJavaScript(CFX_WideTextBuf& javascript) override; 261 void ToJavaScript(CFX_WideTextBuf& javascript) override;
257 262
258 private: 263 private:
259 CFX_WideStringC m_wsIdentifier; 264 CFX_WideStringC m_wsIdentifier;
260 }; 265 };
261 266
262 class CXFA_FMIndexExpression : public CXFA_FMUnaryExpression { 267 class CXFA_FMIndexExpression : public CXFA_FMUnaryExpression {
263 public: 268 public:
264 CXFA_FMIndexExpression(uint32_t line, 269 CXFA_FMIndexExpression(uint32_t line,
265 XFA_FM_AccessorIndex accessorIndex, 270 XFA_FM_AccessorIndex accessorIndex,
266 CXFA_FMSimpleExpression* pIndexExp, 271 std::unique_ptr<CXFA_FMSimpleExpression> pIndexExp,
267 bool bIsStarIndex); 272 bool bIsStarIndex);
268 ~CXFA_FMIndexExpression() override {} 273 ~CXFA_FMIndexExpression() override {}
269 void ToJavaScript(CFX_WideTextBuf& javascript) override; 274 void ToJavaScript(CFX_WideTextBuf& javascript) override;
270 275
271 private: 276 private:
272 XFA_FM_AccessorIndex m_accessorIndex; 277 XFA_FM_AccessorIndex m_accessorIndex;
273 bool m_bIsStarIndex; 278 bool m_bIsStarIndex;
274 }; 279 };
275 280
276 class CXFA_FMDotDotAccessorExpression : public CXFA_FMBinExpression { 281 class CXFA_FMDotDotAccessorExpression : public CXFA_FMBinExpression {
277 public: 282 public:
278 CXFA_FMDotDotAccessorExpression(uint32_t line, 283 CXFA_FMDotDotAccessorExpression(
279 CXFA_FMSimpleExpression* pAccessor, 284 uint32_t line,
280 XFA_FM_TOKEN op, 285 std::unique_ptr<CXFA_FMSimpleExpression> pAccessor,
281 CFX_WideStringC wsIdentifier, 286 XFA_FM_TOKEN op,
282 CXFA_FMSimpleExpression* pIndexExp); 287 CFX_WideStringC wsIdentifier,
288 std::unique_ptr<CXFA_FMSimpleExpression> pIndexExp);
283 ~CXFA_FMDotDotAccessorExpression() override; 289 ~CXFA_FMDotDotAccessorExpression() override;
284 290
285 void ToJavaScript(CFX_WideTextBuf& javascript) override; 291 void ToJavaScript(CFX_WideTextBuf& javascript) override;
286 292
287 private: 293 private:
288 CFX_WideStringC m_wsIdentifier; 294 CFX_WideStringC m_wsIdentifier;
289 }; 295 };
290 296
291 class CXFA_FMMethodCallExpression : public CXFA_FMBinExpression { 297 class CXFA_FMMethodCallExpression : public CXFA_FMBinExpression {
292 public: 298 public:
293 CXFA_FMMethodCallExpression(uint32_t line, 299 CXFA_FMMethodCallExpression(
294 CXFA_FMSimpleExpression* pAccessorExp1, 300 uint32_t line,
295 CXFA_FMSimpleExpression* pCallExp); 301 std::unique_ptr<CXFA_FMSimpleExpression> pAccessorExp1,
302 std::unique_ptr<CXFA_FMSimpleExpression> pCallExp);
296 ~CXFA_FMMethodCallExpression() override {} 303 ~CXFA_FMMethodCallExpression() override {}
297 void ToJavaScript(CFX_WideTextBuf& javascript) override; 304 void ToJavaScript(CFX_WideTextBuf& javascript) override;
298 }; 305 };
299 306
300 #endif // XFA_FXFA_FM2JS_XFA_SIMPLEEXPRESSION_H_ 307 #endif // XFA_FXFA_FM2JS_XFA_SIMPLEEXPRESSION_H_
OLDNEW
« no previous file with comments | « xfa/fxfa/fm2js/xfa_fmparse.cpp ('k') | xfa/fxfa/fm2js/xfa_simpleexpression.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698