equal
deleted
inserted
replaced
266 { |
266 { |
267 SetOperator (CSISExpression::EPrimTypeVariable); |
267 SetOperator (CSISExpression::EPrimTypeVariable); |
268 SetValue (static_cast <TUint32> (IdentifyUCKeyword (KVariables, aIdentifier, L"unknown variable"))); |
268 SetValue (static_cast <TUint32> (IdentifyUCKeyword (KVariables, aIdentifier, L"unknown variable"))); |
269 } |
269 } |
270 |
270 |
271 void CSISExpression::AddPackageEntry(std::wostream& aStream, bool aVerbose) const |
271 void CSISExpression::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const |
272 { |
272 { |
273 TExpressionFeatures* features = findExpressionFeature (iOperator); |
273 TExpressionFeatures* features = findExpressionFeature (iOperator); |
274 if(NULL == features) |
274 if(NULL == features) |
275 { |
275 { |
276 aStream << L"UNKNOWN"; |
276 aStream << L"UNKNOWN"; |
283 if(iOperator.Value() == EFuncExists) |
283 if(iOperator.Value() == EFuncExists) |
284 { |
284 { |
285 aStream << L"\""; |
285 aStream << L"\""; |
286 } |
286 } |
287 |
287 |
288 LHS().AddPackageEntry(aStream, aVerbose); |
288 LHS().AddPackageEntry(aStream, aVerbose, aCompatible); |
289 if(iOperator.Value() == EFuncExists) |
289 if(iOperator.Value() == EFuncExists) |
290 { |
290 { |
291 aStream << L"\""; |
291 aStream << L"\""; |
292 } |
292 } |
293 aStream << L")"; |
293 aStream << L")"; |
295 |
295 |
296 std::wstring versionStr = iString.GetString().substr(0,KFuncVersionPrefix.length()); |
296 std::wstring versionStr = iString.GetString().substr(0,KFuncVersionPrefix.length()); |
297 std::wstring supportedLanguageStr = iString.GetString().substr(0,KFuncSupportedLanguagePrefix.length()); |
297 std::wstring supportedLanguageStr = iString.GetString().substr(0,KFuncSupportedLanguagePrefix.length()); |
298 if((iOperator.Value() == EFuncExists) && (versionStr == KFuncVersionPrefix)) |
298 if((iOperator.Value() == EFuncExists) && (versionStr == KFuncVersionPrefix)) |
299 { |
299 { |
300 WriteVersionCondition (aStream, aVerbose); |
300 WriteVersionCondition (aStream, aVerbose, aCompatible); |
301 } |
301 } |
302 else if ((iOperator.Value() == EFuncExists) && (supportedLanguageStr == KFuncSupportedLanguagePrefix)) |
302 else if ((iOperator.Value() == EFuncExists) && (supportedLanguageStr == KFuncSupportedLanguagePrefix)) |
303 { |
303 { |
304 WriteSupportedLanguageCondition (aStream, aVerbose); |
304 WriteSupportedLanguageCondition (aStream, aVerbose, aCompatible); |
305 } |
305 } |
306 else |
306 else |
307 { |
307 { |
308 aStream << features->iName; |
308 aStream << features->iName; |
309 } |
309 } |
314 if(iOperator.Value() == EFuncExists) |
314 if(iOperator.Value() == EFuncExists) |
315 { |
315 { |
316 aStream << L"\""; |
316 aStream << L"\""; |
317 } |
317 } |
318 |
318 |
319 RHS().AddPackageEntry(aStream, aVerbose); |
319 RHS().AddPackageEntry(aStream, aVerbose, aCompatible); |
320 if(iOperator.Value() == EFuncExists) |
320 if(iOperator.Value() == EFuncExists) |
321 { |
321 { |
322 aStream << L"\""; |
322 aStream << L"\""; |
323 } |
323 } |
324 aStream << L")"; |
324 aStream << L")"; |
333 if(iOperator.Value() == EFuncExists) |
333 if(iOperator.Value() == EFuncExists) |
334 { |
334 { |
335 aStream << L"\""; |
335 aStream << L"\""; |
336 } |
336 } |
337 |
337 |
338 iString.AddPackageEntry(aStream, aVerbose); |
338 iString.AddPackageEntry(aStream, aVerbose, aCompatible); |
339 if(iOperator.Value() == EFuncExists) |
339 if(iOperator.Value() == EFuncExists) |
340 { |
340 { |
341 aStream << L"\""; |
341 aStream << L"\""; |
342 } |
342 } |
343 aStream << L")"; |
343 aStream << L")"; |
368 aStream << iInteger; |
368 aStream << iInteger; |
369 } |
369 } |
370 } |
370 } |
371 } |
371 } |
372 |
372 |
373 void CSISExpression::WriteVersionCondition(std::basic_ostream<wchar_t>& aStream, bool aVerbose) const |
373 void CSISExpression::WriteVersionCondition(std::basic_ostream<wchar_t>& aStream, bool aVerbose, bool aCompatible) const |
374 { |
374 { |
375 std::wstring parseString = iString.GetString().substr(KFuncVersionPrefix.length()); |
375 std::wstring parseString = iString.GetString().substr(KFuncVersionPrefix.length()); |
376 std::wstring outputArgs; |
376 std::wstring outputArgs; |
377 |
377 |
378 try |
378 try |
528 std::wstring msgString(buffer); |
528 std::wstring msgString(buffer); |
529 delete buffer; |
529 delete buffer; |
530 |
530 |
531 // Output the condition as an exists statement and comment warnings to the stream |
531 // Output the condition as an exists statement and comment warnings to the stream |
532 aStream << L"exists(\""; |
532 aStream << L"exists(\""; |
533 iString.AddPackageEntry(aStream, aVerbose); |
533 iString.AddPackageEntry(aStream, aVerbose, aCompatible); |
534 aStream << L"\")" << std::endl; |
534 aStream << L"\")" << std::endl; |
535 aStream << L"; warning: \"VERSION\" condition output as \"EXISTS\"" << std::endl; |
535 aStream << L"; warning: \"VERSION\" condition output as \"EXISTS\"" << std::endl; |
536 aStream << L"; " << msgString; |
536 aStream << L"; " << msgString; |
537 } |
537 } |
538 } |
538 } |
592 } |
592 } |
593 |
593 |
594 return false; |
594 return false; |
595 } |
595 } |
596 |
596 |
597 void CSISExpression::WriteSupportedLanguageCondition(std::basic_ostream<wchar_t>& aStream, bool aVerbose) const |
597 void CSISExpression::WriteSupportedLanguageCondition(std::basic_ostream<wchar_t>& aStream, bool aVerbose, bool aCompatible) const |
598 { |
598 { |
599 std::wstring parseString = iString.GetString().substr(KFuncSupportedLanguagePrefix.length()); |
599 std::wstring parseString = iString.GetString().substr(KFuncSupportedLanguagePrefix.length()); |
600 std::wstring outputArgs; |
600 std::wstring outputArgs; |
601 try |
601 try |
602 { |
602 { |
621 std::wstring msgString(buffer); |
621 std::wstring msgString(buffer); |
622 delete buffer; |
622 delete buffer; |
623 |
623 |
624 // Output the condition as an exists statement and comment warnings to the stream |
624 // Output the condition as an exists statement and comment warnings to the stream |
625 aStream << L"exists(\""; |
625 aStream << L"exists(\""; |
626 iString.AddPackageEntry(aStream, aVerbose); |
626 iString.AddPackageEntry(aStream, aVerbose, aCompatible); |
627 aStream << L"\")" << std::endl; |
627 aStream << L"\")" << std::endl; |
628 aStream << L"; warning: \"Supported_Language\" condition output as \"EXISTS\"" << std::endl; |
628 aStream << L"; warning: \"Supported_Language\" condition output as \"EXISTS\"" << std::endl; |
629 aStream << L"; " << msgString; |
629 aStream << L"; " << msgString; |
630 } |
630 } |
631 } |
631 } |