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

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

Issue 1830323006: Remove FX_DWORD from XFA. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 months 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_lexer.cpp ('k') | xfa/fxfa/parser/xfa_basic_imp.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 #include "xfa/fxfa/fm2js/xfa_simpleexpression.h" 7 #include "xfa/fxfa/fm2js/xfa_simpleexpression.h"
8 8
9 #include "core/fxcrt/include/fx_ext.h" 9 #include "core/fxcrt/include/fx_ext.h"
10 10
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 {0xd907aee5, L"Num2GMTime"}, {0xdf24f7c4, L"Decode"}, 74 {0xd907aee5, L"Num2GMTime"}, {0xdf24f7c4, L"Decode"},
75 {0xe2664803, L"Substr"}, {0xe3e7b528, L"Stuff"}, 75 {0xe2664803, L"Substr"}, {0xe3e7b528, L"Stuff"},
76 {0xe6792d4e, L"Rtrim"}, {0xe8c23f5b, L"Parse"}, 76 {0xe6792d4e, L"Rtrim"}, {0xe8c23f5b, L"Parse"},
77 {0xea18d121, L"Choose"}, {0xebfef69c, L"Replace"}, 77 {0xea18d121, L"Choose"}, {0xebfef69c, L"Replace"},
78 {0xf5ad782b, L"Left"}, {0xf7bb2248, L"Ltrim"}, 78 {0xf5ad782b, L"Left"}, {0xf7bb2248, L"Ltrim"},
79 }; 79 };
80 80
81 struct XFA_FMSOMMethod { 81 struct XFA_FMSOMMethod {
82 uint32_t m_uHash; 82 uint32_t m_uHash;
83 const FX_WCHAR* m_wsSomMethodName; 83 const FX_WCHAR* m_wsSomMethodName;
84 FX_DWORD m_dParameters; 84 uint32_t m_dParameters;
85 }; 85 };
86 const XFA_FMSOMMethod gs_FMSomMethods[] = { 86 const XFA_FMSOMMethod gs_FMSomMethods[] = {
87 {0x00000068, L"h", 0x01}, 87 {0x00000068, L"h", 0x01},
88 {0x00000077, L"w", 0x01}, 88 {0x00000077, L"w", 0x01},
89 {0x00000078, L"x", 0x01}, 89 {0x00000078, L"x", 0x01},
90 {0x00000079, L"y", 0x01}, 90 {0x00000079, L"y", 0x01},
91 {0x05eb5b0f, L"pageSpan", 0x01}, 91 {0x05eb5b0f, L"pageSpan", 0x01},
92 {0x10f1b1bd, L"page", 0x01}, 92 {0x10f1b1bd, L"page", 0x01},
93 {0x3bf1c2a5, L"absPageSpan", 0x01}, 93 {0x3bf1c2a5, L"absPageSpan", 0x01},
94 {0x3c752495, L"verify", 0x0d}, 94 {0x3c752495, L"verify", 0x0d},
(...skipping 12 matching lines...) Expand all
107 {0xe74f0653, L"absPage", 0x01}, 107 {0xe74f0653, L"absPage", 0x01},
108 }; 108 };
109 109
110 } // namespace 110 } // namespace
111 111
112 CFX_WideStringC XFA_FM_EXPTypeToString( 112 CFX_WideStringC XFA_FM_EXPTypeToString(
113 XFA_FM_SimpleExpressionType simpleExpType) { 113 XFA_FM_SimpleExpressionType simpleExpType) {
114 return gs_lpStrExpFuncName[simpleExpType]; 114 return gs_lpStrExpFuncName[simpleExpType];
115 } 115 }
116 116
117 CXFA_FMSimpleExpression::CXFA_FMSimpleExpression(FX_DWORD line, XFA_FM_TOKEN op) 117 CXFA_FMSimpleExpression::CXFA_FMSimpleExpression(uint32_t line, XFA_FM_TOKEN op)
118 : m_line(line), m_op(op) {} 118 : m_line(line), m_op(op) {}
119 119
120 void CXFA_FMSimpleExpression::ToJavaScript(CFX_WideTextBuf& javascript) {} 120 void CXFA_FMSimpleExpression::ToJavaScript(CFX_WideTextBuf& javascript) {}
121 121
122 void CXFA_FMSimpleExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {} 122 void CXFA_FMSimpleExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {}
123 123
124 XFA_FM_TOKEN CXFA_FMSimpleExpression::GetOperatorToken() const { 124 XFA_FM_TOKEN CXFA_FMSimpleExpression::GetOperatorToken() const {
125 return m_op; 125 return m_op;
126 } 126 }
127 127
128 CXFA_FMNullExpression::CXFA_FMNullExpression(FX_DWORD line) 128 CXFA_FMNullExpression::CXFA_FMNullExpression(uint32_t line)
129 : CXFA_FMSimpleExpression(line, TOKnull) {} 129 : CXFA_FMSimpleExpression(line, TOKnull) {}
130 130
131 void CXFA_FMNullExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 131 void CXFA_FMNullExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
132 javascript << FX_WSTRC(L"null"); 132 javascript << FX_WSTRC(L"null");
133 } 133 }
134 134
135 CXFA_FMNumberExpression::CXFA_FMNumberExpression(FX_DWORD line, 135 CXFA_FMNumberExpression::CXFA_FMNumberExpression(uint32_t line,
136 CFX_WideStringC wsNumber) 136 CFX_WideStringC wsNumber)
137 : CXFA_FMSimpleExpression(line, TOKnumber), m_wsNumber(wsNumber) {} 137 : CXFA_FMSimpleExpression(line, TOKnumber), m_wsNumber(wsNumber) {}
138 138
139 void CXFA_FMNumberExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 139 void CXFA_FMNumberExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
140 javascript << m_wsNumber; 140 javascript << m_wsNumber;
141 } 141 }
142 142
143 CXFA_FMStringExpression::CXFA_FMStringExpression(FX_DWORD line, 143 CXFA_FMStringExpression::CXFA_FMStringExpression(uint32_t line,
144 CFX_WideStringC wsString) 144 CFX_WideStringC wsString)
145 : CXFA_FMSimpleExpression(line, TOKstring), m_wsString(wsString) {} 145 : CXFA_FMSimpleExpression(line, TOKstring), m_wsString(wsString) {}
146 146
147 void CXFA_FMStringExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 147 void CXFA_FMStringExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
148 CFX_WideString tempStr = m_wsString; 148 CFX_WideString tempStr = m_wsString;
149 if (tempStr.GetLength() > 2) { 149 if (tempStr.GetLength() > 2) {
150 javascript.AppendChar(L'\"'); 150 javascript.AppendChar(L'\"');
151 FX_WCHAR oneChar; 151 FX_WCHAR oneChar;
152 for (int16_t i = 1; i < tempStr.GetLength() - 1; i++) { 152 for (int16_t i = 1; i < tempStr.GetLength() - 1; i++) {
153 oneChar = tempStr[i]; 153 oneChar = tempStr[i];
(...skipping 10 matching lines...) Expand all
164 default: { javascript.AppendChar(oneChar); } break; 164 default: { javascript.AppendChar(oneChar); } break;
165 } 165 }
166 } 166 }
167 javascript.AppendChar(L'\"'); 167 javascript.AppendChar(L'\"');
168 } else { 168 } else {
169 javascript << tempStr; 169 javascript << tempStr;
170 } 170 }
171 } 171 }
172 172
173 CXFA_FMIdentifierExpressionn::CXFA_FMIdentifierExpressionn( 173 CXFA_FMIdentifierExpressionn::CXFA_FMIdentifierExpressionn(
174 FX_DWORD line, 174 uint32_t line,
175 CFX_WideStringC wsIdentifier) 175 CFX_WideStringC wsIdentifier)
176 : CXFA_FMSimpleExpression(line, TOKidentifier), 176 : CXFA_FMSimpleExpression(line, TOKidentifier),
177 m_wsIdentifier(wsIdentifier) {} 177 m_wsIdentifier(wsIdentifier) {}
178 178
179 void CXFA_FMIdentifierExpressionn::ToJavaScript(CFX_WideTextBuf& javascript) { 179 void CXFA_FMIdentifierExpressionn::ToJavaScript(CFX_WideTextBuf& javascript) {
180 CFX_WideString tempStr = m_wsIdentifier; 180 CFX_WideString tempStr = m_wsIdentifier;
181 if (tempStr.Equal(FX_WSTRC(L"$"))) { 181 if (tempStr.Equal(FX_WSTRC(L"$"))) {
182 tempStr = FX_WSTRC(L"this"); 182 tempStr = FX_WSTRC(L"this");
183 } else if (tempStr.Equal(FX_WSTRC(L"!"))) { 183 } else if (tempStr.Equal(FX_WSTRC(L"!"))) {
184 tempStr = FX_WSTRC(L"xfa.datasets"); 184 tempStr = FX_WSTRC(L"xfa.datasets");
185 } else if (tempStr.Equal(FX_WSTRC(L"$data"))) { 185 } else if (tempStr.Equal(FX_WSTRC(L"$data"))) {
186 tempStr = FX_WSTRC(L"xfa.datasets.data"); 186 tempStr = FX_WSTRC(L"xfa.datasets.data");
187 } else if (tempStr.Equal(FX_WSTRC(L"$event"))) { 187 } else if (tempStr.Equal(FX_WSTRC(L"$event"))) {
188 tempStr = FX_WSTRC(L"xfa.event"); 188 tempStr = FX_WSTRC(L"xfa.event");
189 } else if (tempStr.Equal(FX_WSTRC(L"$form"))) { 189 } else if (tempStr.Equal(FX_WSTRC(L"$form"))) {
190 tempStr = FX_WSTRC(L"xfa.form"); 190 tempStr = FX_WSTRC(L"xfa.form");
191 } else if (tempStr.Equal(FX_WSTRC(L"$host"))) { 191 } else if (tempStr.Equal(FX_WSTRC(L"$host"))) {
192 tempStr = FX_WSTRC(L"xfa.host"); 192 tempStr = FX_WSTRC(L"xfa.host");
193 } else if (tempStr.Equal(FX_WSTRC(L"$layout"))) { 193 } else if (tempStr.Equal(FX_WSTRC(L"$layout"))) {
194 tempStr = FX_WSTRC(L"xfa.layout"); 194 tempStr = FX_WSTRC(L"xfa.layout");
195 } else if (tempStr.Equal(FX_WSTRC(L"$template"))) { 195 } else if (tempStr.Equal(FX_WSTRC(L"$template"))) {
196 tempStr = FX_WSTRC(L"xfa.template"); 196 tempStr = FX_WSTRC(L"xfa.template");
197 } else if (tempStr[0] == L'!') { 197 } else if (tempStr[0] == L'!') {
198 tempStr = EXCLAMATION_IN_IDENTIFIER + tempStr.Mid(1); 198 tempStr = EXCLAMATION_IN_IDENTIFIER + tempStr.Mid(1);
199 } 199 }
200 javascript << tempStr; 200 javascript << tempStr;
201 } 201 }
202 202
203 CXFA_FMUnaryExpression::CXFA_FMUnaryExpression(FX_DWORD line, 203 CXFA_FMUnaryExpression::CXFA_FMUnaryExpression(uint32_t line,
204 XFA_FM_TOKEN op, 204 XFA_FM_TOKEN op,
205 CXFA_FMSimpleExpression* pExp) 205 CXFA_FMSimpleExpression* pExp)
206 : CXFA_FMSimpleExpression(line, op), m_pExp(pExp) {} 206 : CXFA_FMSimpleExpression(line, op), m_pExp(pExp) {}
207 207
208 void CXFA_FMUnaryExpression::ToJavaScript(CFX_WideTextBuf& javascript) {} 208 void CXFA_FMUnaryExpression::ToJavaScript(CFX_WideTextBuf& javascript) {}
209 209
210 CXFA_FMBinExpression::CXFA_FMBinExpression(FX_DWORD line, 210 CXFA_FMBinExpression::CXFA_FMBinExpression(uint32_t line,
211 XFA_FM_TOKEN op, 211 XFA_FM_TOKEN op,
212 CXFA_FMSimpleExpression* pExp1, 212 CXFA_FMSimpleExpression* pExp1,
213 CXFA_FMSimpleExpression* pExp2) 213 CXFA_FMSimpleExpression* pExp2)
214 : CXFA_FMSimpleExpression(line, op), m_pExp1(pExp1), m_pExp2(pExp2) {} 214 : CXFA_FMSimpleExpression(line, op), m_pExp1(pExp1), m_pExp2(pExp2) {}
215 215
216 void CXFA_FMBinExpression::ToJavaScript(CFX_WideTextBuf& javascript) {} 216 void CXFA_FMBinExpression::ToJavaScript(CFX_WideTextBuf& javascript) {}
217 217
218 CXFA_FMAssignExpression::CXFA_FMAssignExpression(FX_DWORD line, 218 CXFA_FMAssignExpression::CXFA_FMAssignExpression(uint32_t line,
219 XFA_FM_TOKEN op, 219 XFA_FM_TOKEN op,
220 CXFA_FMSimpleExpression* pExp1, 220 CXFA_FMSimpleExpression* pExp1,
221 CXFA_FMSimpleExpression* pExp2) 221 CXFA_FMSimpleExpression* pExp2)
222 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} 222 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
223 223
224 void CXFA_FMAssignExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 224 void CXFA_FMAssignExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
225 javascript << FX_WSTRC(L"if ("); 225 javascript << FX_WSTRC(L"if (");
226 javascript << gs_lpStrExpFuncName[ISFMOBJECT]; 226 javascript << gs_lpStrExpFuncName[ISFMOBJECT];
227 javascript << FX_WSTRC(L"("); 227 javascript << FX_WSTRC(L"(");
228 m_pExp1->ToJavaScript(javascript); 228 m_pExp1->ToJavaScript(javascript);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 javascript << gs_lpStrExpFuncName[ASSIGN]; 275 javascript << gs_lpStrExpFuncName[ASSIGN];
276 javascript << FX_WSTRC(L"("); 276 javascript << FX_WSTRC(L"(");
277 m_pExp1->ToJavaScript(javascript); 277 m_pExp1->ToJavaScript(javascript);
278 javascript << FX_WSTRC(L", "); 278 javascript << FX_WSTRC(L", ");
279 m_pExp2->ToJavaScript(javascript); 279 m_pExp2->ToJavaScript(javascript);
280 javascript << FX_WSTRC(L");\n}\n"); 280 javascript << FX_WSTRC(L");\n}\n");
281 } 281 }
282 } 282 }
283 283
284 CXFA_FMLogicalOrExpression::CXFA_FMLogicalOrExpression( 284 CXFA_FMLogicalOrExpression::CXFA_FMLogicalOrExpression(
285 FX_DWORD line, 285 uint32_t line,
286 XFA_FM_TOKEN op, 286 XFA_FM_TOKEN op,
287 CXFA_FMSimpleExpression* pExp1, 287 CXFA_FMSimpleExpression* pExp1,
288 CXFA_FMSimpleExpression* pExp2) 288 CXFA_FMSimpleExpression* pExp2)
289 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} 289 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
290 290
291 void CXFA_FMLogicalOrExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 291 void CXFA_FMLogicalOrExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
292 javascript << gs_lpStrExpFuncName[LOGICALOR]; 292 javascript << gs_lpStrExpFuncName[LOGICALOR];
293 javascript << FX_WSTRC(L"("); 293 javascript << FX_WSTRC(L"(");
294 m_pExp1->ToJavaScript(javascript); 294 m_pExp1->ToJavaScript(javascript);
295 javascript << FX_WSTRC(L", "); 295 javascript << FX_WSTRC(L", ");
296 m_pExp2->ToJavaScript(javascript); 296 m_pExp2->ToJavaScript(javascript);
297 javascript << FX_WSTRC(L")"); 297 javascript << FX_WSTRC(L")");
298 } 298 }
299 299
300 CXFA_FMLogicalAndExpression::CXFA_FMLogicalAndExpression( 300 CXFA_FMLogicalAndExpression::CXFA_FMLogicalAndExpression(
301 FX_DWORD line, 301 uint32_t line,
302 XFA_FM_TOKEN op, 302 XFA_FM_TOKEN op,
303 CXFA_FMSimpleExpression* pExp1, 303 CXFA_FMSimpleExpression* pExp1,
304 CXFA_FMSimpleExpression* pExp2) 304 CXFA_FMSimpleExpression* pExp2)
305 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} 305 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
306 306
307 void CXFA_FMLogicalAndExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 307 void CXFA_FMLogicalAndExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
308 javascript << gs_lpStrExpFuncName[LOGICALAND]; 308 javascript << gs_lpStrExpFuncName[LOGICALAND];
309 javascript << FX_WSTRC(L"("); 309 javascript << FX_WSTRC(L"(");
310 m_pExp1->ToJavaScript(javascript); 310 m_pExp1->ToJavaScript(javascript);
311 javascript << FX_WSTRC(L", "); 311 javascript << FX_WSTRC(L", ");
312 m_pExp2->ToJavaScript(javascript); 312 m_pExp2->ToJavaScript(javascript);
313 javascript << FX_WSTRC(L")"); 313 javascript << FX_WSTRC(L")");
314 } 314 }
315 315
316 CXFA_FMEqualityExpression::CXFA_FMEqualityExpression( 316 CXFA_FMEqualityExpression::CXFA_FMEqualityExpression(
317 FX_DWORD line, 317 uint32_t line,
318 XFA_FM_TOKEN op, 318 XFA_FM_TOKEN op,
319 CXFA_FMSimpleExpression* pExp1, 319 CXFA_FMSimpleExpression* pExp1,
320 CXFA_FMSimpleExpression* pExp2) 320 CXFA_FMSimpleExpression* pExp2)
321 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} 321 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
322 322
323 void CXFA_FMEqualityExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 323 void CXFA_FMEqualityExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
324 switch (m_op) { 324 switch (m_op) {
325 case TOKeq: 325 case TOKeq:
326 case TOKkseq: 326 case TOKkseq:
327 javascript << gs_lpStrExpFuncName[EQUALITY]; 327 javascript << gs_lpStrExpFuncName[EQUALITY];
328 break; 328 break;
329 case TOKne: 329 case TOKne:
330 case TOKksne: 330 case TOKksne:
331 javascript << gs_lpStrExpFuncName[NOTEQUALITY]; 331 javascript << gs_lpStrExpFuncName[NOTEQUALITY];
332 break; 332 break;
333 default: 333 default:
334 FXSYS_assert(FALSE); 334 FXSYS_assert(FALSE);
335 break; 335 break;
336 } 336 }
337 javascript << FX_WSTRC(L"("); 337 javascript << FX_WSTRC(L"(");
338 m_pExp1->ToJavaScript(javascript); 338 m_pExp1->ToJavaScript(javascript);
339 javascript << FX_WSTRC(L", "); 339 javascript << FX_WSTRC(L", ");
340 m_pExp2->ToJavaScript(javascript); 340 m_pExp2->ToJavaScript(javascript);
341 javascript << FX_WSTRC(L")"); 341 javascript << FX_WSTRC(L")");
342 } 342 }
343 343
344 CXFA_FMRelationalExpression::CXFA_FMRelationalExpression( 344 CXFA_FMRelationalExpression::CXFA_FMRelationalExpression(
345 FX_DWORD line, 345 uint32_t line,
346 XFA_FM_TOKEN op, 346 XFA_FM_TOKEN op,
347 CXFA_FMSimpleExpression* pExp1, 347 CXFA_FMSimpleExpression* pExp1,
348 CXFA_FMSimpleExpression* pExp2) 348 CXFA_FMSimpleExpression* pExp2)
349 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} 349 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
350 350
351 void CXFA_FMRelationalExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 351 void CXFA_FMRelationalExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
352 switch (m_op) { 352 switch (m_op) {
353 case TOKlt: 353 case TOKlt:
354 case TOKkslt: 354 case TOKkslt:
355 javascript << gs_lpStrExpFuncName[LESS]; 355 javascript << gs_lpStrExpFuncName[LESS];
(...skipping 15 matching lines...) Expand all
371 break; 371 break;
372 } 372 }
373 javascript << FX_WSTRC(L"("); 373 javascript << FX_WSTRC(L"(");
374 m_pExp1->ToJavaScript(javascript); 374 m_pExp1->ToJavaScript(javascript);
375 javascript << FX_WSTRC(L", "); 375 javascript << FX_WSTRC(L", ");
376 m_pExp2->ToJavaScript(javascript); 376 m_pExp2->ToJavaScript(javascript);
377 javascript << FX_WSTRC(L")"); 377 javascript << FX_WSTRC(L")");
378 } 378 }
379 379
380 CXFA_FMAdditiveExpression::CXFA_FMAdditiveExpression( 380 CXFA_FMAdditiveExpression::CXFA_FMAdditiveExpression(
381 FX_DWORD line, 381 uint32_t line,
382 XFA_FM_TOKEN op, 382 XFA_FM_TOKEN op,
383 CXFA_FMSimpleExpression* pExp1, 383 CXFA_FMSimpleExpression* pExp1,
384 CXFA_FMSimpleExpression* pExp2) 384 CXFA_FMSimpleExpression* pExp2)
385 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} 385 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
386 386
387 void CXFA_FMAdditiveExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 387 void CXFA_FMAdditiveExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
388 switch (m_op) { 388 switch (m_op) {
389 case TOKplus: 389 case TOKplus:
390 javascript << gs_lpStrExpFuncName[PLUS]; 390 javascript << gs_lpStrExpFuncName[PLUS];
391 break; 391 break;
392 case TOKminus: 392 case TOKminus:
393 javascript << gs_lpStrExpFuncName[MINUS]; 393 javascript << gs_lpStrExpFuncName[MINUS];
394 break; 394 break;
395 default: 395 default:
396 FXSYS_assert(FALSE); 396 FXSYS_assert(FALSE);
397 break; 397 break;
398 } 398 }
399 javascript << FX_WSTRC(L"("); 399 javascript << FX_WSTRC(L"(");
400 m_pExp1->ToJavaScript(javascript); 400 m_pExp1->ToJavaScript(javascript);
401 javascript << FX_WSTRC(L", "); 401 javascript << FX_WSTRC(L", ");
402 m_pExp2->ToJavaScript(javascript); 402 m_pExp2->ToJavaScript(javascript);
403 javascript << FX_WSTRC(L")"); 403 javascript << FX_WSTRC(L")");
404 } 404 }
405 405
406 CXFA_FMMultiplicativeExpression::CXFA_FMMultiplicativeExpression( 406 CXFA_FMMultiplicativeExpression::CXFA_FMMultiplicativeExpression(
407 FX_DWORD line, 407 uint32_t line,
408 XFA_FM_TOKEN op, 408 XFA_FM_TOKEN op,
409 CXFA_FMSimpleExpression* pExp1, 409 CXFA_FMSimpleExpression* pExp1,
410 CXFA_FMSimpleExpression* pExp2) 410 CXFA_FMSimpleExpression* pExp2)
411 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} 411 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
412 412
413 void CXFA_FMMultiplicativeExpression::ToJavaScript( 413 void CXFA_FMMultiplicativeExpression::ToJavaScript(
414 CFX_WideTextBuf& javascript) { 414 CFX_WideTextBuf& javascript) {
415 switch (m_op) { 415 switch (m_op) {
416 case TOKmul: 416 case TOKmul:
417 javascript << gs_lpStrExpFuncName[MULTIPLE]; 417 javascript << gs_lpStrExpFuncName[MULTIPLE];
418 break; 418 break;
419 case TOKdiv: 419 case TOKdiv:
420 javascript << gs_lpStrExpFuncName[DIVIDE]; 420 javascript << gs_lpStrExpFuncName[DIVIDE];
421 break; 421 break;
422 default: 422 default:
423 FXSYS_assert(FALSE); 423 FXSYS_assert(FALSE);
424 break; 424 break;
425 } 425 }
426 javascript << FX_WSTRC(L"("); 426 javascript << FX_WSTRC(L"(");
427 m_pExp1->ToJavaScript(javascript); 427 m_pExp1->ToJavaScript(javascript);
428 javascript << FX_WSTRC(L", "); 428 javascript << FX_WSTRC(L", ");
429 m_pExp2->ToJavaScript(javascript); 429 m_pExp2->ToJavaScript(javascript);
430 javascript << FX_WSTRC(L")"); 430 javascript << FX_WSTRC(L")");
431 } 431 }
432 432
433 CXFA_FMPosExpression::CXFA_FMPosExpression(FX_DWORD line, 433 CXFA_FMPosExpression::CXFA_FMPosExpression(uint32_t line,
434 CXFA_FMSimpleExpression* pExp) 434 CXFA_FMSimpleExpression* pExp)
435 : CXFA_FMUnaryExpression(line, TOKplus, pExp) {} 435 : CXFA_FMUnaryExpression(line, TOKplus, pExp) {}
436 436
437 void CXFA_FMPosExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 437 void CXFA_FMPosExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
438 javascript << gs_lpStrExpFuncName[POSITIVE]; 438 javascript << gs_lpStrExpFuncName[POSITIVE];
439 javascript << FX_WSTRC(L"("); 439 javascript << FX_WSTRC(L"(");
440 m_pExp->ToJavaScript(javascript); 440 m_pExp->ToJavaScript(javascript);
441 javascript << FX_WSTRC(L")"); 441 javascript << FX_WSTRC(L")");
442 } 442 }
443 443
444 CXFA_FMNegExpression::CXFA_FMNegExpression(FX_DWORD line, 444 CXFA_FMNegExpression::CXFA_FMNegExpression(uint32_t line,
445 CXFA_FMSimpleExpression* pExp) 445 CXFA_FMSimpleExpression* pExp)
446 : CXFA_FMUnaryExpression(line, TOKminus, pExp) {} 446 : CXFA_FMUnaryExpression(line, TOKminus, pExp) {}
447 447
448 void CXFA_FMNegExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 448 void CXFA_FMNegExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
449 javascript << gs_lpStrExpFuncName[NEGATIVE]; 449 javascript << gs_lpStrExpFuncName[NEGATIVE];
450 javascript << FX_WSTRC(L"("); 450 javascript << FX_WSTRC(L"(");
451 m_pExp->ToJavaScript(javascript); 451 m_pExp->ToJavaScript(javascript);
452 javascript << FX_WSTRC(L")"); 452 javascript << FX_WSTRC(L")");
453 } 453 }
454 454
455 CXFA_FMNotExpression::CXFA_FMNotExpression(FX_DWORD line, 455 CXFA_FMNotExpression::CXFA_FMNotExpression(uint32_t line,
456 CXFA_FMSimpleExpression* pExp) 456 CXFA_FMSimpleExpression* pExp)
457 : CXFA_FMUnaryExpression(line, TOKksnot, pExp) {} 457 : CXFA_FMUnaryExpression(line, TOKksnot, pExp) {}
458 458
459 void CXFA_FMNotExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 459 void CXFA_FMNotExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
460 javascript << gs_lpStrExpFuncName[NOT]; 460 javascript << gs_lpStrExpFuncName[NOT];
461 javascript << FX_WSTRC(L"("); 461 javascript << FX_WSTRC(L"(");
462 m_pExp->ToJavaScript(javascript); 462 m_pExp->ToJavaScript(javascript);
463 javascript << FX_WSTRC(L")"); 463 javascript << FX_WSTRC(L")");
464 } 464 }
465 465
466 CXFA_FMCallExpression::CXFA_FMCallExpression(FX_DWORD line, 466 CXFA_FMCallExpression::CXFA_FMCallExpression(uint32_t line,
467 CXFA_FMSimpleExpression* pExp, 467 CXFA_FMSimpleExpression* pExp,
468 CFX_PtrArray* pArguments, 468 CFX_PtrArray* pArguments,
469 FX_BOOL bIsSomMethod) 469 FX_BOOL bIsSomMethod)
470 : CXFA_FMUnaryExpression(line, TOKcall, pExp), 470 : CXFA_FMUnaryExpression(line, TOKcall, pExp),
471 m_bIsSomMethod(bIsSomMethod), 471 m_bIsSomMethod(bIsSomMethod),
472 m_pArguments(pArguments) {} 472 m_pArguments(pArguments) {}
473 473
474 CXFA_FMCallExpression::~CXFA_FMCallExpression() { 474 CXFA_FMCallExpression::~CXFA_FMCallExpression() {
475 if (m_pArguments) { 475 if (m_pArguments) {
476 for (int i = 0; i < m_pArguments->GetSize(); ++i) { 476 for (int i = 0; i < m_pArguments->GetSize(); ++i) {
(...skipping 14 matching lines...) Expand all
491 return func.m_uHash < hash; 491 return func.m_uHash < hash;
492 }); 492 });
493 if (pFunc < pEnd && uHash == pFunc->m_uHash) { 493 if (pFunc < pEnd && uHash == pFunc->m_uHash) {
494 funcName->Clear(); 494 funcName->Clear();
495 *funcName << pFunc->m_buildinfunc; 495 *funcName << pFunc->m_buildinfunc;
496 return true; 496 return true;
497 } 497 }
498 return false; 498 return false;
499 } 499 }
500 500
501 FX_DWORD CXFA_FMCallExpression::IsMethodWithObjParam( 501 uint32_t CXFA_FMCallExpression::IsMethodWithObjParam(
502 const CFX_WideStringC& methodName) { 502 const CFX_WideStringC& methodName) {
503 int32_t iLength = methodName.GetLength(); 503 int32_t iLength = methodName.GetLength();
504 uint32_t uHash = FX_HashCode_String_GetW(methodName.GetPtr(), iLength); 504 uint32_t uHash = FX_HashCode_String_GetW(methodName.GetPtr(), iLength);
505 XFA_FMSOMMethod somMethodWithObjPara; 505 XFA_FMSOMMethod somMethodWithObjPara;
506 FX_DWORD parameters = 0x00; 506 uint32_t parameters = 0x00;
507 int32_t iStart = 0, 507 int32_t iStart = 0,
508 iEnd = (sizeof(gs_FMSomMethods) / sizeof(gs_FMSomMethods[0])) - 1; 508 iEnd = (sizeof(gs_FMSomMethods) / sizeof(gs_FMSomMethods[0])) - 1;
509 int32_t iMid = (iStart + iEnd) / 2; 509 int32_t iMid = (iStart + iEnd) / 2;
510 do { 510 do {
511 iMid = (iStart + iEnd) / 2; 511 iMid = (iStart + iEnd) / 2;
512 somMethodWithObjPara = gs_FMSomMethods[iMid]; 512 somMethodWithObjPara = gs_FMSomMethods[iMid];
513 if (uHash == somMethodWithObjPara.m_uHash) { 513 if (uHash == somMethodWithObjPara.m_uHash) {
514 parameters = somMethodWithObjPara.m_dParameters; 514 parameters = somMethodWithObjPara.m_dParameters;
515 break; 515 break;
516 } else if (uHash < somMethodWithObjPara.m_uHash) { 516 } else if (uHash < somMethodWithObjPara.m_uHash) {
517 iEnd = iMid - 1; 517 iEnd = iMid - 1;
518 } else { 518 } else {
519 iStart = iMid + 1; 519 iStart = iMid + 1;
520 } 520 }
521 } while (iStart <= iEnd); 521 } while (iStart <= iEnd);
522 return parameters; 522 return parameters;
523 } 523 }
524 524
525 void CXFA_FMCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 525 void CXFA_FMCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
526 CFX_WideTextBuf funcName; 526 CFX_WideTextBuf funcName;
527 m_pExp->ToJavaScript(funcName); 527 m_pExp->ToJavaScript(funcName);
528 if (m_bIsSomMethod) { 528 if (m_bIsSomMethod) {
529 javascript << funcName; 529 javascript << funcName;
530 javascript << FX_WSTRC(L"("); 530 javascript << FX_WSTRC(L"(");
531 if (m_pArguments) { 531 if (m_pArguments) {
532 FX_DWORD methodPara = IsMethodWithObjParam(funcName.GetWideString()); 532 uint32_t methodPara = IsMethodWithObjParam(funcName.GetWideString());
533 if (methodPara > 0) { 533 if (methodPara > 0) {
534 for (int i = 0; i < m_pArguments->GetSize(); ++i) { 534 for (int i = 0; i < m_pArguments->GetSize(); ++i) {
535 if ((methodPara & (0x01 << i)) > 0) { 535 if ((methodPara & (0x01 << i)) > 0) {
536 javascript << gs_lpStrExpFuncName[GETFMJSOBJ]; 536 javascript << gs_lpStrExpFuncName[GETFMJSOBJ];
537 } else { 537 } else {
538 javascript << gs_lpStrExpFuncName[GETFMVALUE]; 538 javascript << gs_lpStrExpFuncName[GETFMVALUE];
539 } 539 }
540 javascript << FX_WSTRC(L"("); 540 javascript << FX_WSTRC(L"(");
541 CXFA_FMSimpleExpression* e = 541 CXFA_FMSimpleExpression* e =
542 reinterpret_cast<CXFA_FMSimpleExpression*>( 542 reinterpret_cast<CXFA_FMSimpleExpression*>(
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 } 608 }
609 } 609 }
610 javascript << FX_WSTRC(L")"); 610 javascript << FX_WSTRC(L")");
611 if (isEvalFunc) { 611 if (isEvalFunc) {
612 javascript << FX_WSTRC(L")"); 612 javascript << FX_WSTRC(L")");
613 } 613 }
614 } 614 }
615 } 615 }
616 616
617 CXFA_FMDotAccessorExpression::CXFA_FMDotAccessorExpression( 617 CXFA_FMDotAccessorExpression::CXFA_FMDotAccessorExpression(
618 FX_DWORD line, 618 uint32_t line,
619 CXFA_FMSimpleExpression* pAccessor, 619 CXFA_FMSimpleExpression* pAccessor,
620 XFA_FM_TOKEN op, 620 XFA_FM_TOKEN op,
621 CFX_WideStringC wsIdentifier, 621 CFX_WideStringC wsIdentifier,
622 CXFA_FMSimpleExpression* pIndexExp) 622 CXFA_FMSimpleExpression* pIndexExp)
623 : CXFA_FMBinExpression(line, op, pAccessor, pIndexExp), 623 : CXFA_FMBinExpression(line, op, pAccessor, pIndexExp),
624 m_wsIdentifier(wsIdentifier) {} 624 m_wsIdentifier(wsIdentifier) {}
625 625
626 void CXFA_FMDotAccessorExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 626 void CXFA_FMDotAccessorExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
627 javascript << gs_lpStrExpFuncName[DOT]; 627 javascript << gs_lpStrExpFuncName[DOT];
628 javascript << FX_WSTRC(L"("); 628 javascript << FX_WSTRC(L"(");
(...skipping 19 matching lines...) Expand all
648 } else { 648 } else {
649 javascript << FX_WSTRC(L"\""); 649 javascript << FX_WSTRC(L"\"");
650 javascript << m_wsIdentifier; 650 javascript << m_wsIdentifier;
651 javascript << FX_WSTRC(L"\", "); 651 javascript << FX_WSTRC(L"\", ");
652 } 652 }
653 m_pExp2->ToJavaScript(javascript); 653 m_pExp2->ToJavaScript(javascript);
654 javascript << FX_WSTRC(L")"); 654 javascript << FX_WSTRC(L")");
655 } 655 }
656 656
657 CXFA_FMIndexExpression::CXFA_FMIndexExpression( 657 CXFA_FMIndexExpression::CXFA_FMIndexExpression(
658 FX_DWORD line, 658 uint32_t line,
659 XFA_FM_AccessorIndex accessorIndex, 659 XFA_FM_AccessorIndex accessorIndex,
660 CXFA_FMSimpleExpression* pIndexExp, 660 CXFA_FMSimpleExpression* pIndexExp,
661 FX_BOOL bIsStarIndex) 661 FX_BOOL bIsStarIndex)
662 : CXFA_FMUnaryExpression(line, TOKlbracket, pIndexExp), 662 : CXFA_FMUnaryExpression(line, TOKlbracket, pIndexExp),
663 m_accessorIndex(accessorIndex), 663 m_accessorIndex(accessorIndex),
664 m_bIsStarIndex(bIsStarIndex) {} 664 m_bIsStarIndex(bIsStarIndex) {}
665 665
666 void CXFA_FMIndexExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 666 void CXFA_FMIndexExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
667 switch (m_accessorIndex) { 667 switch (m_accessorIndex) {
668 case ACCESSOR_NO_INDEX: 668 case ACCESSOR_NO_INDEX:
(...skipping 15 matching lines...) Expand all
684 javascript << FX_WSTRC(L", "); 684 javascript << FX_WSTRC(L", ");
685 if (m_pExp) { 685 if (m_pExp) {
686 m_pExp->ToJavaScript(javascript); 686 m_pExp->ToJavaScript(javascript);
687 } else { 687 } else {
688 javascript << FX_WSTRC(L"0"); 688 javascript << FX_WSTRC(L"0");
689 } 689 }
690 } 690 }
691 } 691 }
692 692
693 CXFA_FMDotDotAccessorExpression::CXFA_FMDotDotAccessorExpression( 693 CXFA_FMDotDotAccessorExpression::CXFA_FMDotDotAccessorExpression(
694 FX_DWORD line, 694 uint32_t line,
695 CXFA_FMSimpleExpression* pAccessor, 695 CXFA_FMSimpleExpression* pAccessor,
696 XFA_FM_TOKEN op, 696 XFA_FM_TOKEN op,
697 CFX_WideStringC wsIdentifier, 697 CFX_WideStringC wsIdentifier,
698 CXFA_FMSimpleExpression* pIndexExp) 698 CXFA_FMSimpleExpression* pIndexExp)
699 : CXFA_FMBinExpression(line, op, pAccessor, pIndexExp), 699 : CXFA_FMBinExpression(line, op, pAccessor, pIndexExp),
700 m_wsIdentifier(wsIdentifier) {} 700 m_wsIdentifier(wsIdentifier) {}
701 701
702 void CXFA_FMDotDotAccessorExpression::ToJavaScript( 702 void CXFA_FMDotDotAccessorExpression::ToJavaScript(
703 CFX_WideTextBuf& javascript) { 703 CFX_WideTextBuf& javascript) {
704 javascript << gs_lpStrExpFuncName[DOTDOT]; 704 javascript << gs_lpStrExpFuncName[DOTDOT];
705 javascript << FX_WSTRC(L"("); 705 javascript << FX_WSTRC(L"(");
706 m_pExp1->ToJavaScript(javascript); 706 m_pExp1->ToJavaScript(javascript);
707 javascript << FX_WSTRC(L", "); 707 javascript << FX_WSTRC(L", ");
708 javascript << FX_WSTRC(L"\""); 708 javascript << FX_WSTRC(L"\"");
709 if (m_pExp1 && m_pExp1->GetOperatorToken() == TOKidentifier) { 709 if (m_pExp1 && m_pExp1->GetOperatorToken() == TOKidentifier) {
710 m_pExp1->ToJavaScript(javascript); 710 m_pExp1->ToJavaScript(javascript);
711 } 711 }
712 javascript << FX_WSTRC(L"\", "); 712 javascript << FX_WSTRC(L"\", ");
713 javascript << FX_WSTRC(L"\""); 713 javascript << FX_WSTRC(L"\"");
714 javascript << m_wsIdentifier; 714 javascript << m_wsIdentifier;
715 javascript << FX_WSTRC(L"\", "); 715 javascript << FX_WSTRC(L"\", ");
716 m_pExp2->ToJavaScript(javascript); 716 m_pExp2->ToJavaScript(javascript);
717 javascript << FX_WSTRC(L")"); 717 javascript << FX_WSTRC(L")");
718 } 718 }
719 719
720 CXFA_FMMethodCallExpression::CXFA_FMMethodCallExpression( 720 CXFA_FMMethodCallExpression::CXFA_FMMethodCallExpression(
721 FX_DWORD line, 721 uint32_t line,
722 CXFA_FMSimpleExpression* pAccessorExp1, 722 CXFA_FMSimpleExpression* pAccessorExp1,
723 CXFA_FMSimpleExpression* pCallExp) 723 CXFA_FMSimpleExpression* pCallExp)
724 : CXFA_FMBinExpression(line, TOKdot, pAccessorExp1, pCallExp) {} 724 : CXFA_FMBinExpression(line, TOKdot, pAccessorExp1, pCallExp) {}
725 725
726 void CXFA_FMMethodCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 726 void CXFA_FMMethodCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
727 javascript << FX_WSTRC(L"(\nfunction ()\n{\n"); 727 javascript << FX_WSTRC(L"(\nfunction ()\n{\n");
728 javascript << FX_WSTRC(L"var method_return_value = null;\n"); 728 javascript << FX_WSTRC(L"var method_return_value = null;\n");
729 javascript << FX_WSTRC(L"var accessor_object = "); 729 javascript << FX_WSTRC(L"var accessor_object = ");
730 m_pExp1->ToJavaScript(javascript); 730 m_pExp1->ToJavaScript(javascript);
731 javascript << FX_WSTRC(L";\n"); 731 javascript << FX_WSTRC(L";\n");
732 javascript << FX_WSTRC(L"if ("); 732 javascript << FX_WSTRC(L"if (");
733 javascript << gs_lpStrExpFuncName[ISFMARRAY]; 733 javascript << gs_lpStrExpFuncName[ISFMARRAY];
734 javascript << FX_WSTRC(L"(accessor_object))\n{\n"); 734 javascript << FX_WSTRC(L"(accessor_object))\n{\n");
735 javascript << FX_WSTRC( 735 javascript << FX_WSTRC(
736 L"for(var index = accessor_object.length - 1; index > 1; index--)\n{\n"); 736 L"for(var index = accessor_object.length - 1; index > 1; index--)\n{\n");
737 javascript << FX_WSTRC(L"method_return_value = accessor_object[index]."); 737 javascript << FX_WSTRC(L"method_return_value = accessor_object[index].");
738 m_pExp2->ToJavaScript(javascript); 738 m_pExp2->ToJavaScript(javascript);
739 javascript << FX_WSTRC(L";\n}\n}\n"); 739 javascript << FX_WSTRC(L";\n}\n}\n");
740 javascript << FX_WSTRC(L"else\n{\nmethod_return_value = accessor_object."); 740 javascript << FX_WSTRC(L"else\n{\nmethod_return_value = accessor_object.");
741 m_pExp2->ToJavaScript(javascript); 741 m_pExp2->ToJavaScript(javascript);
742 javascript << FX_WSTRC(L";\n}\n"); 742 javascript << FX_WSTRC(L";\n}\n");
743 javascript << FX_WSTRC(L"return method_return_value;\n"); 743 javascript << FX_WSTRC(L"return method_return_value;\n");
744 javascript << FX_WSTRC(L"}\n).call(this)"); 744 javascript << FX_WSTRC(L"}\n).call(this)");
745 } 745 }
OLDNEW
« no previous file with comments | « xfa/fxfa/fm2js/xfa_lexer.cpp ('k') | xfa/fxfa/parser/xfa_basic_imp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698