#include <IccMpeCalc.h>
◆ CIccFuncTokenizer()
CIccFuncTokenizer::CIccFuncTokenizer |
( |
const char * |
szText, |
|
|
bool |
bAllowReferences = false |
|
) |
| |
◆ ~CIccFuncTokenizer()
CIccFuncTokenizer::~CIccFuncTokenizer |
( |
| ) |
|
|
virtual |
◆ GetEnvSig()
2674{
2675 const char *pos =
GetPos();
2676
2678 return false;
2679 const char *szToken =
m_token->c_str();
2680 int l=(int)strlen(szToken);
2681 if ((*szToken=='[' && szToken[l-1]==']') ||
2682 (*szToken=='(' && szToken[l-1]==')')) {
2683
2684 int i;
2685
2687 if (l==10) {
2688 sscanf(szToken+1, "%x", &sig);
2689
2691 return true;
2692 }
2693
2694 for (i=1; i<=4 && i<l-1; i++) {
2695 sig <<= 8;
2696 sig |= szToken[i];
2697 }
2698
2699 for (;i<=4; i++) {
2700 sig <<= 8;
2701 sig |= 0x20;
2702 }
2703
2705 }
2706 else {
2709 return false;
2710 }
2711
2712 return true;
2713}
unsigned long icUInt32Number
Definition icProfileHeader.h:262
icSigCmmEnvVar
Definition icProfileHeader.h:631
void SetPos(const char *szText)
Definition IccMpeCalc.h:330
const char * GetPos()
Definition IccMpeCalc.h:329
bool GetNext(bool bForceNoRefs=false)
Definition IccMpeCalc.cpp:2495
References GetNext(), GetPos(), m_token, and SetPos().
Referenced by CIccCalculatorFunc::ParseFuncDef().
◆ GetIndex()
2631{
2632 unsigned int iv1, iv2;
2633 const char *pos =
GetPos();
2634
2636 return false;
2637 iv1=initV1;
2638 iv2=initV2;
2639 const char *szToken =
m_token->c_str();
2640 if (*szToken=='[' || *szToken=='(') {
2641 if (strchr(szToken, ',')) {
2642 if (*szToken=='(')
2643 sscanf(
m_token->c_str(),
"(%u,%u)", &iv1, &iv2);
2644 else
2645 sscanf(
m_token->c_str(),
"[%u,%u]", &iv1, &iv2);
2646 }
2647 else {
2648 if (*szToken=='(')
2649 sscanf(
m_token->c_str(),
"(%u)", &iv1);
2650 else
2651 sscanf(
m_token->c_str(),
"[%u]", &iv1);
2652 }
2653 }
2654 else {
2656 }
2659
2660 return true;
2661}
unsigned short icUInt16Number
Definition icProfileHeader.h:256
References GetNext(), GetPos(), m_token, and SetPos().
Referenced by CIccMpeXmlCalculator::Flatten(), CIccCalculatorFunc::ParseFuncDef(), CIccMpeXmlCalculator::ParseImport(), and CIccMpeXmlCalculator::UpdateLocals().
◆ GetLast()
std::string & CIccFuncTokenizer::GetLast |
( |
| ) |
|
|
inline |
◆ GetName()
std::string CIccFuncTokenizer::GetName |
( |
| ) |
const |
◆ GetNext()
bool CIccFuncTokenizer::GetNext |
( |
bool |
bForceNoRefs = false | ) |
|
2496{
2498
2499try_again:
2500
2503
2505 return false;
2506 }
2507
2512 return true;
2513 }
2514
2518 return true;
2519 }
2520
2527 }
2528 }
2529
2536 }
2538 return false;
2539 }
2540 }
2541 }
2542
2544 return false;
2545 }
2546
2549 goto try_again;
2550 }
2551
2556 }
2557 }
2558 else {
2563 }
2564 }
2565 return true;
2566}
bool IsWhiteSpace()
Definition IccMpeCalc.cpp:2716
void SkipComment()
Definition IccMpeCalc.cpp:2730
bool IsComment()
Definition IccMpeCalc.cpp:2723
References IsComment(), IsWhiteSpace(), m_bUseRefs, m_text, m_token, and SkipComment().
Referenced by CIccMpeXmlCalculator::Flatten(), GetEnvSig(), GetIndex(), CIccCalculatorFunc::ParseFuncDef(), CIccMpeXmlCalculator::ParseImport(), CIccMpeXmlCalculator::UpdateLocals(), and CIccMpeXmlCalculator::ValidMacroCalls().
◆ GetPos()
const char * CIccFuncTokenizer::GetPos |
( |
| ) |
|
|
inline |
◆ GetReference()
std::string CIccFuncTokenizer::GetReference |
( |
| ) |
const |
◆ GetSig()
2570{
2571 const unsigned char *szToken = (
unsigned char*)
m_token->c_str();
2572 int i;
2573
2574 if ((szToken[0]>='0' && szToken[0]<='9') || szToken[0]=='.' || (szToken[0]=='-' && szToken[1]!='I')) {
2576 }
2577
2578 if (szToken[0]=='{')
2580
2581 if (szToken[0]=='}')
2583
2584 if (szToken[0]=='[')
2586
2588 for (i=0; i<4 && szToken[i]; i++) {
2589 sig <<= 8;
2590 sig |= szToken[i];
2591 }
2592
2593 for (;i<4; i++) {
2594 sig <<= 8;
2595 sig |= 0x20;
2596 }
2597
2599}
icSigCalcOp
Definition IccMpeCalc.h:110
@ icSigDataOp
Definition IccMpeCalc.h:112
#define icSigEndBlockOp
Definition IccMpeCalc.h:319
#define icSigBadOp
Definition IccMpeCalc.h:320
#define icSigBeginBlockOp
Definition IccMpeCalc.h:318
References icSigDataOp, and m_token.
Referenced by CIccCalculatorFunc::ParseFuncDef().
◆ GetValue()
◆ IsComment()
bool CIccFuncTokenizer::IsComment |
( |
| ) |
|
|
protected |
2724{
2726 return true;
2727 return false;
2728}
References m_text.
Referenced by GetNext().
◆ IsWhiteSpace()
bool CIccFuncTokenizer::IsWhiteSpace |
( |
| ) |
|
|
protected |
2717{
2719 return true;
2720 return false;
2721}
References m_text.
Referenced by GetNext().
◆ SetPos()
void CIccFuncTokenizer::SetPos |
( |
const char * |
szText | ) |
|
|
inline |
◆ SkipComment()
void CIccFuncTokenizer::SkipComment |
( |
| ) |
|
|
protected |
◆ m_bUseRefs
bool CIccFuncTokenizer::m_bUseRefs |
|
protected |
◆ m_text
const char* CIccFuncTokenizer::m_text |
|
protected |
◆ m_token
std::string* CIccFuncTokenizer::m_token |
|
protected |
The documentation for this class was generated from the following files: