MCPcopy Create free account
hub / github.com/ElementsProject/elements / getJsonToken

Function getJsonToken

src/univalue/lib/univalue_read.cpp:51–245  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

49}
50
51enum jtokentype getJsonToken(std::string& tokenVal, unsigned int& consumed,
52 const char *raw, const char *end)
53{
54 tokenVal.clear();
55 consumed = 0;
56
57 const char *rawStart = raw;
58
59 while (raw < end && (json_isspace(*raw))) // skip whitespace
60 raw++;
61
62 if (raw >= end)
63 return JTOK_NONE;
64
65 switch (*raw) {
66
67 case '{':
68 raw++;
69 consumed = (raw - rawStart);
70 return JTOK_OBJ_OPEN;
71 case '}':
72 raw++;
73 consumed = (raw - rawStart);
74 return JTOK_OBJ_CLOSE;
75 case '[':
76 raw++;
77 consumed = (raw - rawStart);
78 return JTOK_ARR_OPEN;
79 case ']':
80 raw++;
81 consumed = (raw - rawStart);
82 return JTOK_ARR_CLOSE;
83
84 case ':':
85 raw++;
86 consumed = (raw - rawStart);
87 return JTOK_COLON;
88 case ',':
89 raw++;
90 consumed = (raw - rawStart);
91 return JTOK_COMMA;
92
93 case 'n':
94 case 't':
95 case 'f':
96 if (!strncmp(raw, "null", 4)) {
97 raw += 4;
98 consumed = (raw - rawStart);
99 return JTOK_KW_NULL;
100 } else if (!strncmp(raw, "true", 4)) {
101 raw += 4;
102 consumed = (raw - rawStart);
103 return JTOK_KW_TRUE;
104 } else if (!strncmp(raw, "false", 5)) {
105 raw += 5;
106 consumed = (raw - rawStart);
107 return JTOK_KW_FALSE;
108 } else

Callers 2

validNumStrFunction · 0.85
readMethod · 0.85

Calls 7

json_isspaceFunction · 0.85
json_isdigitFunction · 0.85
hatouiFunction · 0.85
push_back_uMethod · 0.80
finalizeMethod · 0.80
clearMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected