MCPcopy Index your code
hub / github.com/GJDuck/e9patch / parseParams

Function parseParams

src/e9patch/e9json.cpp:1056–1244  ·  view source on GitHub ↗

* Parse a parameter object. */

Source from the content-addressed store, hash-verified

1054 * Parse a parameter object.
1055 */
1056static void parseParams(Parser &parser, Message &msg)
1057{
1058 msg.num_params = 0;
1059 expectToken(parser, '{');
1060 char token = expectToken2(parser, '}', TOKEN_STRING);
1061 if (token == '}')
1062 return;
1063 while (true)
1064 {
1065 ParamName name = PARAM_UNKNOWN;
1066 switch (parser.s[0])
1067 {
1068 case 'a':
1069 if (strcmp(parser.s, "address") == 0)
1070 name = PARAM_ADDRESS;
1071 else if (strcmp(parser.s, "absolute") == 0)
1072 name = PARAM_ABSOLUTE;
1073 else if (strcmp(parser.s, "argv") == 0)
1074 name = PARAM_ARGV;
1075 break;
1076 case 'b':
1077 if (strcmp(parser.s, "bytes") == 0)
1078 name = PARAM_BYTES;
1079 break;
1080 case 'f':
1081 if (strcmp(parser.s, "filename") == 0)
1082 name = PARAM_FILENAME;
1083 else if (strcmp(parser.s, "format") == 0)
1084 name = PARAM_FORMAT;
1085 else if (strcmp(parser.s, "fini") == 0)
1086 name = PARAM_FINI;
1087 break;
1088 case 'i':
1089 if (strcmp(parser.s, "init") == 0)
1090 name = PARAM_INIT;
1091 break;
1092 case 'l':
1093 if (strcmp(parser.s, "length") == 0)
1094 name = PARAM_LENGTH;
1095 break;
1096 case 'o':
1097 if (strcmp(parser.s, "offset") == 0)
1098 name = PARAM_OFFSET;
1099 break;
1100 case 'p':
1101 if (strcmp(parser.s, "preinit") == 0)
1102 name = PARAM_PREINIT;
1103 else if (strcmp(parser.s, "postinit") == 0)
1104 name = PARAM_POSTINIT;
1105 else if (strcmp(parser.s, "protection") == 0)
1106 name = PARAM_PROTECTION;
1107 break;
1108 case 'm':
1109 if (strcmp(parser.s, "metadata") == 0)
1110 name = PARAM_METADATA;
1111 else if (strcmp(parser.s, "mode") == 0)
1112 name = PARAM_MODE;
1113 else if (strcmp(parser.s, "mmap") == 0)

Callers 1

getMessageFunction · 0.85

Calls 12

expectTokenFunction · 0.85
expectToken2Function · 0.85
strcmpFunction · 0.85
validateParamFunction · 0.85
parseAndDiscardObjectFunction · 0.85
stringToNumberFunction · 0.85
parseStringsFunction · 0.85
dupStringFunction · 0.85
parseMetadataFunction · 0.85
parseProtectionFunction · 0.85
parseBytesFunction · 0.85
parseTrampolineFunction · 0.70

Tested by

no test coverage detected