Lines Matching refs:sv

99 rust_demangle_v0(rust_state_t *restrict st, strview_t *restrict sv)  in rust_demangle_v0()  argument
105 if (!rustv0_valid_sym(sv)) { in rust_demangle_v0()
118 if (!rustv0_parse_path(st, sv, B_TRUE)) in rust_demangle_v0()
123 ret = OPTIONAL(st, rustv0_parse_path(st, sv, B_FALSE)); in rust_demangle_v0()
129 if (sv_remaining(sv) == 0) in rust_demangle_v0()
142 if (sv_consume_if(sv, ".llvm.")) in rust_demangle_v0()
145 if (sv_peek(sv, 0) != '.') { in rust_demangle_v0()
147 "name: '%.*s'", __func__, SV_PRINT(sv)); in rust_demangle_v0()
152 return (rust_append_sv(st, sv_remaining(sv), sv)); in rust_demangle_v0()
160 rustv0_parse_opt_list(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_opt_list() argument
166 DEMDEBUG("%s: str = '%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_opt_list()
168 while (sv_remaining(sv) > 0) { in rustv0_parse_opt_list()
169 if (sv_consume_if_c(sv, 'E')) { in rustv0_parse_opt_list()
178 if (!fn(st, sv, bval)) in rustv0_parse_opt_list()
192 rustv0_parse_uint_type(rust_state_t *restrict st, strview_t *sv) in rustv0_parse_uint_type() argument
198 if (HAS_ERROR(st) || sv_remaining(sv) == 0) in rustv0_parse_uint_type()
201 sv_init_sv(&save, sv); in rustv0_parse_uint_type()
203 switch (c = sv_consume_c(sv)) { in rustv0_parse_uint_type()
223 sv_init_sv(sv, &save); in rustv0_parse_uint_type()
232 rustv0_parse_basic_type(rust_state_t *restrict st, strview_t *restrict sv) in rustv0_parse_basic_type() argument
238 if (HAS_ERROR(st) || sv_remaining(sv) == 0) in rustv0_parse_basic_type()
241 if (rustv0_parse_uint_type(st, sv)) in rustv0_parse_basic_type()
244 sv_init_sv(&save, sv); in rustv0_parse_basic_type()
246 switch (c = sv_consume_c(sv)) { in rustv0_parse_basic_type()
293 sv_init_sv(sv, &save); in rustv0_parse_basic_type()
302 rustv0_parse_type(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_type() argument
313 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_type()
315 if (sv_remaining(sv) == 0) in rustv0_parse_type()
319 sv_init_sv(&save, sv); in rustv0_parse_type()
321 switch (c = sv_consume_c(sv)) { in rustv0_parse_type()
324 rustv0_parse_type(st, sv, B_FALSE) && in rustv0_parse_type()
326 rustv0_parse_const(st, sv, B_FALSE) && in rustv0_parse_type()
331 rustv0_parse_type(st, sv, B_FALSE) && in rustv0_parse_type()
337 rustv0_parse_opt_list(st, sv, rustv0_parse_type, ", ", in rustv0_parse_type()
351 if (rustv0_parse_lifetime(st, sv)) { in rustv0_parse_type()
359 rustv0_parse_type(st, sv, B_FALSE); in rustv0_parse_type()
363 rustv0_parse_type(st, sv, B_FALSE); in rustv0_parse_type()
367 rustv0_parse_type(st, sv, B_FALSE); in rustv0_parse_type()
370 ret = rustv0_parse_fnsig(st, sv); in rustv0_parse_type()
374 rustv0_parse_dynbounds(st, sv); in rustv0_parse_type()
382 DEMDEBUG("%s: pre-lifetime: '%*s'", __func__, SV_PRINT(sv)); in rustv0_parse_type()
388 if (sv_consume_if(sv, "L_")) in rustv0_parse_type()
395 if (sv_peek(sv, 0) == 'L' && in rustv0_parse_type()
399 ret = rustv0_parse_lifetime(st, sv); in rustv0_parse_type()
402 sv_init_sv(sv, &save); in rustv0_parse_type()
404 ret = rustv0_parse_backref(st, sv, rustv0_parse_type, in rustv0_parse_type()
406 rustv0_parse_basic_type(st, sv); in rustv0_parse_type()
410 ret = rustv0_parse_path(st, sv, B_FALSE); in rustv0_parse_type()
430 rustv0_parse_path(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_path() argument
444 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_path()
446 if (sv_remaining(sv) == 0) in rustv0_parse_path()
450 sv_init_sv(&save, sv); in rustv0_parse_path()
452 switch (sv_consume_c(sv)) { in rustv0_parse_path()
454 if (!OPTIONAL(st, rustv0_parse_disambiguator(st, sv, &disamb))) in rustv0_parse_path()
457 if (!rustv0_parse_undisambiguated_identifier(st, sv, B_FALSE)) in rustv0_parse_path()
466 if (!rustv0_parse_impl_path(st, sv, in_value)) { in rustv0_parse_path()
473 !rustv0_parse_type(st, sv, B_FALSE) || in rustv0_parse_path()
479 if (!rustv0_parse_impl_path(st, sv, in_value)) { in rustv0_parse_path()
487 !rustv0_parse_type(st, sv, B_FALSE) || in rustv0_parse_path()
489 !rustv0_parse_path(st, sv, B_FALSE) || in rustv0_parse_path()
494 if (!rustv0_parse_nested_path(st, sv, in_value)) in rustv0_parse_path()
501 if (!rustv0_parse_path(st, sv, in_value)) in rustv0_parse_path()
508 !rustv0_parse_opt_list(st, sv, rustv0_parse_generic_arg, in rustv0_parse_path()
531 sv_init_sv(sv, &save); in rustv0_parse_path()
532 if (!rustv0_parse_backref(st, sv, rustv0_parse_path, in_value)) in rustv0_parse_path()
546 rustv0_parse_impl_path(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_impl_path() argument
551 return (OPTIONAL(st, rustv0_parse_disambiguator(st, sv, &val)) && in rustv0_parse_impl_path()
552 rustv0_parse_path(st, sv, in_value)); in rustv0_parse_impl_path()
562 rustv0_has_name(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_has_name() argument
570 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_has_name()
572 if (sv_remaining(sv) == 0) in rustv0_has_name()
575 sv_init_sv(&save, sv); in rustv0_has_name()
580 if (sv_remaining(sv) == 0) { in rustv0_has_name()
595 rustv0_parse_nested_path(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_nested_path() argument
607 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_nested_path()
609 if (sv_remaining(sv) == 0) in rustv0_parse_nested_path()
614 ns = sv_consume_c(sv); in rustv0_parse_nested_path()
616 if (!rustv0_parse_path(st, sv, in_value)) in rustv0_parse_nested_path()
619 if (!OPTIONAL(st, rustv0_parse_disambiguator(st, sv, &disambiguator))) in rustv0_parse_nested_path()
622 if (!rustv0_has_name(st, sv, &has_name)) in rustv0_parse_nested_path()
647 if (!rustv0_parse_undisambiguated_identifier(st, sv, B_FALSE)) in rustv0_parse_nested_path()
656 ret = rustv0_parse_undisambiguated_identifier(st, sv, B_FALSE); in rustv0_parse_nested_path()
671 rustv0_parse_disambiguator(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_disambiguator() argument
674 if (HAS_ERROR(st) || sv_remaining(sv) < 2) in rustv0_parse_disambiguator()
677 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_disambiguator()
681 if (!sv_consume_if_c(sv, 's')) in rustv0_parse_disambiguator()
684 if (!rustv0_parse_base62(st, sv, valp)) { in rustv0_parse_disambiguator()
705 strview_t *restrict sv, boolean_t repl_underscore) in rustv0_parse_undisambiguated_identifier() argument
713 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_undisambiguated_identifier()
715 if (sv_remaining(sv) == 0) in rustv0_parse_undisambiguated_identifier()
718 if (sv_consume_if_c(sv, 'u')) in rustv0_parse_undisambiguated_identifier()
721 if (!rust_parse_base10(st, sv, &len)) in rustv0_parse_undisambiguated_identifier()
725 (void) sv_consume_if_c(sv, '_'); in rustv0_parse_undisambiguated_identifier()
727 if (sv_remaining(sv) < len) { in rustv0_parse_undisambiguated_identifier()
730 sv_remaining(sv)); in rustv0_parse_undisambiguated_identifier()
741 sv_init_sv_range(&ident, sv, len); in rustv0_parse_undisambiguated_identifier()
745 sv_consume_n(sv, len); in rustv0_parse_undisambiguated_identifier()
758 return (rust_append_sv(st, len, sv)); in rustv0_parse_undisambiguated_identifier()
765 char c = sv_consume_c(sv); in rustv0_parse_undisambiguated_identifier()
779 rustv0_parse_backref(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_backref() argument
792 sv_init_sv(&backref, sv); in rustv0_parse_backref()
794 if (!sv_consume_if_c(sv, 'B')) in rustv0_parse_backref()
797 DEMDEBUG("%s: str='B%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_backref()
799 if (!rustv0_parse_base62(st, sv, &idx)) { in rustv0_parse_backref()
898 rustv0_parse_lifetime(rust_state_t *restrict st, strview_t *restrict sv) in rustv0_parse_lifetime() argument
902 if (!sv_consume_if_c(sv, 'L')) in rustv0_parse_lifetime()
905 if (!rustv0_parse_base62(st, sv, &lifetime)) in rustv0_parse_lifetime()
913 const_type_class_t type_class, strview_t *restrict sv) in rustv0_parse_const_data() argument
925 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_const_data()
928 if (sv_remaining(sv) == 0) in rustv0_parse_const_data()
931 if (type_class == CTC_SIGNED && sv_consume_if_c(sv, 'n')) in rustv0_parse_const_data()
934 ret = OPTIONAL(st, rustv0_parse_hex_num(st, sv, &val)) && in rustv0_parse_const_data()
935 sv_consume_if_c(sv, '_'); in rustv0_parse_const_data()
977 rustv0_parse_const(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_const() argument
990 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_const()
993 if (sv_remaining(sv) == 0) in rustv0_parse_const()
996 if (rustv0_parse_backref(st, sv, rustv0_parse_const, B_FALSE)) in rustv0_parse_const()
999 if (sv_consume_if_c(sv, 'p')) { in rustv0_parse_const()
1004 ctype = sv_peek(sv, 0); in rustv0_parse_const()
1025 sv_init_sv(&type, sv); in rustv0_parse_const()
1028 ret = rustv0_parse_type(st, sv, B_FALSE); in rustv0_parse_const()
1036 if (sv_consume_if_c(sv, 'p')) { in rustv0_parse_const()
1039 ret = rustv0_parse_const_data(st, ctype_class, sv); in rustv0_parse_const()
1056 rustv0_parse_abi(rust_state_t *restrict st, strview_t *restrict sv) in rustv0_parse_abi() argument
1058 DEMDEBUG("%s: str = '%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_abi()
1060 if (sv_consume_if_c(sv, 'C')) in rustv0_parse_abi()
1063 return (rustv0_parse_undisambiguated_identifier(st, sv, B_TRUE)); in rustv0_parse_abi()
1067 rustv0_parse_binder(rust_state_t *restrict st, strview_t *restrict sv) in rustv0_parse_binder() argument
1071 if (!sv_consume_if_c(sv, 'G')) in rustv0_parse_binder()
1074 if (!rustv0_parse_base62(st, sv, &n)) in rustv0_parse_binder()
1104 rustv0_parse_fnsig(rust_state_t *restrict st, strview_t *restrict sv) in rustv0_parse_fnsig() argument
1108 DEMDEBUG("%s: str = '%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_fnsig()
1110 if (!OPTIONAL(st, rustv0_parse_binder(st, sv))) in rustv0_parse_fnsig()
1113 if (sv_consume_if_c(sv, 'U') && !rust_append(st, "unsafe ")) in rustv0_parse_fnsig()
1116 if (sv_consume_if_c(sv, 'K') && in rustv0_parse_fnsig()
1117 (!rust_append(st, "extern \"") || !rustv0_parse_abi(st, sv) || in rustv0_parse_fnsig()
1124 if (!rustv0_parse_opt_list(st, sv, rustv0_parse_type, ", ", B_FALSE, in rustv0_parse_fnsig()
1133 if (!sv_consume_if_c(sv, 'u')) { in rustv0_parse_fnsig()
1137 if (!rustv0_parse_type(st, sv, B_FALSE)) in rustv0_parse_fnsig()
1151 strview_t *restrict sv, boolean_t open) in rustv0_parse_dyn_trait_assoc_binding() argument
1158 if (sv_remaining(sv) == 0) in rustv0_parse_dyn_trait_assoc_binding()
1161 if (!sv_consume_if_c(sv, 'p')) in rustv0_parse_dyn_trait_assoc_binding()
1164 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_dyn_trait_assoc_binding()
1170 if (!rustv0_parse_undisambiguated_identifier(st, sv, B_FALSE)) { in rustv0_parse_dyn_trait_assoc_binding()
1178 if (!rustv0_parse_type(st, sv, B_FALSE)) { in rustv0_parse_dyn_trait_assoc_binding()
1189 rustv0_parse_dyn_trait(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_dyn_trait() argument
1199 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_dyn_trait()
1226 if (!rustv0_parse_path(st, sv, B_FALSE)) { in rustv0_parse_dyn_trait()
1237 while (rustv0_parse_dyn_trait_assoc_binding(st, sv, open)) { in rustv0_parse_dyn_trait()
1251 rustv0_parse_dynbounds(rust_state_t *restrict st, strview_t *restrict sv) in rustv0_parse_dynbounds() argument
1258 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_dynbounds()
1265 if (!OPTIONAL(st, rustv0_parse_binder(st, sv))) in rustv0_parse_dynbounds()
1268 if (!rustv0_parse_opt_list(st, sv, rustv0_parse_dyn_trait, " + ", in rustv0_parse_dynbounds()
1278 rustv0_parse_generic_arg(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_generic_arg() argument
1281 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_generic_arg()
1283 if (sv_consume_if_c(sv, 'K')) in rustv0_parse_generic_arg()
1284 return (rustv0_parse_const(st, sv, B_FALSE)); in rustv0_parse_generic_arg()
1286 if (rustv0_parse_lifetime(st, sv)) in rustv0_parse_generic_arg()
1289 return (rustv0_parse_type(st, sv, B_FALSE)); in rustv0_parse_generic_arg()
1297 rustv0_parse_hex_num(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_hex_num() argument
1306 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_hex_num()
1308 if (sv_remaining(sv) == 0) in rustv0_parse_hex_num()
1316 while (sv_remaining(sv) > 0) { in rustv0_parse_hex_num()
1317 char c = sv_peek(sv, 0); in rustv0_parse_hex_num()
1329 sv_consume_n(sv, 1); in rustv0_parse_hex_num()
1347 rustv0_parse_base62(rust_state_t *restrict st, strview_t *restrict sv, in rustv0_parse_base62() argument
1356 DEMDEBUG("%s: str='%.*s'", __func__, SV_PRINT(sv)); in rustv0_parse_base62()
1358 if (sv_remaining(sv) == 0) in rustv0_parse_base62()
1362 if (sv_consume_if_c(sv, '_')) { in rustv0_parse_base62()
1368 if (!ISALNUM(sv_peek(sv, 0))) in rustv0_parse_base62()
1371 while (sv_remaining(sv) > 0) { in rustv0_parse_base62()
1372 c = sv_consume_c(sv); in rustv0_parse_base62()
1425 rustv0_valid_sym(const strview_t *sv) in rustv0_valid_sym() argument
1430 for (i = 0; i < sv->sv_rem; i++) { in rustv0_valid_sym()
1431 char c = sv->sv_first[i]; in rustv0_valid_sym()
1444 __func__, c, SV_PRINT(sv), i); in rustv0_valid_sym()