MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / parseNumber

Function parseNumber

pcsx2/DebugTools/ExpressionParser.cpp:67–152  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

65};
66
67bool parseNumber(char* str, int defaultrad, int len, u64& result)
68{
69 u64 val = 0;
70 int r = 0;
71 if (len == 0) len = (int) strlen(str);
72
73 if (str[0] == '0' && tolower(str[1]) == 'x')
74 {
75 r = 16;
76 str+=2;
77 len-=2;
78 } else if (str[0] == '$')
79 {
80 r = 16;
81 str++;
82 len--;
83 } else if (str[0] == '0' && tolower(str[1]) == 'o')
84 {
85 r = 8;
86 str+=2;
87 len-=2;
88 } else {
89 if (tolower(str[len-1]) == 'b' && defaultrad != 16)
90 {
91 r = 2;
92 len--;
93 } else if (tolower(str[len-1]) == 'o')
94 {
95 r = 8;
96 len--;
97 } else if (tolower(str[len-1]) == 'h')
98 {
99 r = 16;
100 len--;
101 } else {
102 r = defaultrad;
103 }
104 }
105
106 switch (r)
107 {
108 case 2: // bin
109 while (len--)
110 {
111 if (*str != '0' && *str != '1') return false;
112 val = val << 1;
113 if (*str++ == '1')
114 {
115 val++;
116 }
117 }
118 break;
119 case 8: // oct
120 while (len--)
121 {
122 if (*str < '0' || *str > '7') return false;
123 val = val << 3;
124 val+=(*str++-'0');

Callers 1

initPostfixExpressionFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected