Lines Matching refs:in

251 get_token (size_t idx, sb *in, sb *name)  in get_token()  argument
253 if (idx < in->len in get_token()
254 && is_name_beginner (in->ptr[idx])) in get_token()
256 sb_add_char (name, in->ptr[idx++]); in get_token()
257 while (idx < in->len in get_token()
258 && is_part_of_name (in->ptr[idx])) in get_token()
260 sb_add_char (name, in->ptr[idx++]); in get_token()
262 if (idx < in->len in get_token()
263 && is_name_ender (in->ptr[idx])) in get_token()
265 sb_add_char (name, in->ptr[idx++]); in get_token()
269 if (macro_alternate && idx < in->len && in->ptr[idx] == '&') in get_token()
277 getstring (size_t idx, sb *in, sb *acc) in getstring() argument
279 while (idx < in->len in getstring()
280 && (in->ptr[idx] == '"' in getstring()
281 || (in->ptr[idx] == '<' && (macro_alternate || macro_mri)) in getstring()
282 || (in->ptr[idx] == '\'' && macro_alternate))) in getstring()
284 if (in->ptr[idx] == '<') in getstring()
288 while ((in->ptr[idx] != '>' || nest) in getstring()
289 && idx < in->len) in getstring()
291 if (in->ptr[idx] == '!') in getstring()
294 sb_add_char (acc, in->ptr[idx++]); in getstring()
298 if (in->ptr[idx] == '>') in getstring()
300 if (in->ptr[idx] == '<') in getstring()
302 sb_add_char (acc, in->ptr[idx++]); in getstring()
307 else if (in->ptr[idx] == '"' || in->ptr[idx] == '\'') in getstring()
309 char tchar = in->ptr[idx]; in getstring()
314 while (idx < in->len) in getstring()
316 if (in->ptr[idx - 1] == '\\') in getstring()
321 if (macro_alternate && in->ptr[idx] == '!') in getstring()
325 sb_add_char (acc, in->ptr[idx]); in getstring()
329 else if (escaped && in->ptr[idx] == tchar) in getstring()
336 if (in->ptr[idx] == tchar) in getstring()
340 if (idx >= in->len || in->ptr[idx] != tchar) in getstring()
344 sb_add_char (acc, in->ptr[idx]); in getstring()
363 get_any_string (size_t idx, sb *in, sb *out) in get_any_string() argument
366 idx = sb_skip_white (idx, in); in get_any_string()
368 if (idx < in->len) in get_any_string()
370 if (in->len > idx + 2 && in->ptr[idx + 1] == '\'' && ISBASE (in->ptr[idx])) in get_any_string()
372 while (!ISSEP (in->ptr[idx])) in get_any_string()
373 sb_add_char (out, in->ptr[idx++]); in get_any_string()
375 else if (in->ptr[idx] == '%' && macro_alternate) in get_any_string()
384 in, in get_any_string()
389 else if (in->ptr[idx] == '"' in get_any_string()
390 || (in->ptr[idx] == '<' && (macro_alternate || macro_mri)) in get_any_string()
391 || (macro_alternate && in->ptr[idx] == '\'')) in get_any_string()
393 if (macro_alternate && ! macro_strip_at && in->ptr[idx] != '<') in get_any_string()
397 idx = getstring (idx, in, out); in get_any_string()
402 idx = getstring (idx, in, out); in get_any_string()
411 while (idx < in->len in get_any_string()
413 || (in->ptr[idx] != ' ' in get_any_string()
414 && in->ptr[idx] != '\t')) in get_any_string()
415 && in->ptr[idx] != ',' in get_any_string()
416 && (in->ptr[idx] != '<' in get_any_string()
419 char tchar = in->ptr[idx]; in get_any_string()
425 sb_add_char (out, in->ptr[idx++]); in get_any_string()
426 while (idx < in->len in get_any_string()
427 && in->ptr[idx] != tchar) in get_any_string()
428 sb_add_char (out, in->ptr[idx++]); in get_any_string()
429 if (idx == in->len) in get_any_string()
498 do_formals (macro_entry *macro, size_t idx, sb *in) in do_formals() argument
503 idx = sb_skip_white (idx, in); in do_formals()
504 while (idx < in->len) in do_formals()
509 idx = get_token (idx, in, &formal->name); in do_formals()
517 idx = sb_skip_white (idx, in); in do_formals()
521 && idx < in->len in do_formals()
522 && in->ptr[idx] == ':' in do_formals()
524 || idx + 1 >= in->len in do_formals()
525 || ! is_part_of_name (in->ptr[idx + 1]))) in do_formals()
531 idx = get_token (sb_skip_white (idx + 1, in), in, &qual); in do_formals()
551 idx = sb_skip_white (idx, in); in do_formals()
553 if (idx < in->len && in->ptr[idx] == '=') in do_formals()
556 idx = get_any_string (idx + 1, in, &formal->def); in do_formals()
557 idx = sb_skip_white (idx, in); in do_formals()
585 idx = sb_skip_comma (idx, in); in do_formals()
586 if (idx != cidx && idx >= in->len) in do_formals()
649 define_macro (size_t idx, sb *in, sb *label, in define_macro() argument
668 idx = sb_skip_white (idx, in); in define_macro()
675 if (idx < in->len && in->ptr[idx] == '(') in define_macro()
678 idx = do_formals (macro, idx + 1, in); in define_macro()
679 if (idx < in->len && in->ptr[idx] == ')') in define_macro()
680 idx = sb_skip_white (idx + 1, in); in define_macro()
687 idx = do_formals (macro, idx, in); in define_macro()
694 idx = get_token (idx, in, &name); in define_macro()
698 cidx = sb_skip_white (idx, in); in define_macro()
699 idx = sb_skip_comma (cidx, in); in define_macro()
700 if (idx == cidx || idx < in->len) in define_macro()
701 idx = do_formals (macro, idx, in); in define_macro()
705 if (!error && idx < in->len) in define_macro()
730 get_apost_token (size_t idx, sb *in, sb *name, int kind) in get_apost_token() argument
732 idx = get_token (idx, in, name); in get_apost_token()
733 if (idx < in->len in get_apost_token()
734 && in->ptr[idx] == kind in get_apost_token()
744 sub_actual (size_t start, sb *in, sb *t, struct hash_control *formal_hash, in sub_actual() argument
750 src = get_apost_token (start, in, t, kind); in sub_actual()
755 && (src == start || in->ptr[src - 1] != '@')) in sub_actual()
775 if (src != start && in->ptr[src - 1] == '&') in sub_actual()
793 macro_expand_body (sb *in, sb *out, formal_entry *formals, in macro_expand_body() argument
804 while (src < in->len && !err) in macro_expand_body()
806 if (in->ptr[src] == '&') in macro_expand_body()
811 if (src + 1 < in->len && in->ptr[src + 1] == '&') in macro_expand_body()
812 src = sub_actual (src + 2, in, &t, formal_hash, '\'', out, 1); in macro_expand_body()
814 sb_add_char (out, in->ptr[src++]); in macro_expand_body()
820 src = sub_actual (src + 1, in, &t, formal_hash, '&', out, 0); in macro_expand_body()
823 else if (in->ptr[src] == '\\') in macro_expand_body()
826 if (src < in->len && in->ptr[src] == '(') in macro_expand_body()
830 while (src < in->len && in->ptr[src] != ')') in macro_expand_body()
832 sb_add_char (out, in->ptr[src++]); in macro_expand_body()
834 if (src < in->len) in macro_expand_body()
841 else if (src < in->len && in->ptr[src] == '@') in macro_expand_body()
850 else if (src < in->len && in->ptr[src] == '&') in macro_expand_body()
858 else if (macro_mri && src < in->len && ISALNUM (in->ptr[src])) in macro_expand_body()
863 if (ISDIGIT (in->ptr[src])) in macro_expand_body()
864 ind = in->ptr[src] - '0'; in macro_expand_body()
865 else if (ISUPPER (in->ptr[src])) in macro_expand_body()
866 ind = in->ptr[src] - 'A' + 10; in macro_expand_body()
868 ind = in->ptr[src] - 'a' + 10; in macro_expand_body()
885 src = sub_actual (src, in, &t, formal_hash, '\'', out, 0); in macro_expand_body()
889 && is_name_beginner (in->ptr[src]) in macro_expand_body()
892 || (src > 0 && in->ptr[src - 1] == '@'))) in macro_expand_body()
895 || src + 5 >= in->len in macro_expand_body()
896 || strncasecmp (in->ptr + src, "LOCAL", 5) != 0 in macro_expand_body()
897 || ! ISWHITE (in->ptr[src + 5]) in macro_expand_body()
902 src = sub_actual (src, in, &t, formal_hash, in macro_expand_body()
908 src = sb_skip_white (src + 5, in); in macro_expand_body()
909 while (in->ptr[src] != '\n') in macro_expand_body()
914 src = get_token (src, in, &f->name); in macro_expand_body()
941 src = sb_skip_comma (src, in); in macro_expand_body()
945 else if (in->ptr[src] == '"' in macro_expand_body()
946 || (macro_mri && in->ptr[src] == '\'')) in macro_expand_body()
949 sb_add_char (out, in->ptr[src++]); in macro_expand_body()
951 else if (in->ptr[src] == '@' && macro_strip_at) in macro_expand_body()
954 if (src < in->len in macro_expand_body()
955 && in->ptr[src] == '@') in macro_expand_body()
962 && in->ptr[src] == '=' in macro_expand_body()
963 && src + 1 < in->len in macro_expand_body()
964 && in->ptr[src + 1] == '=') in macro_expand_body()
969 src = get_token (src + 2, in, &t); in macro_expand_body()
999 if (in->ptr[src] == '\n') in macro_expand_body()
1001 sb_add_char (out, in->ptr[src++]); in macro_expand_body()
1026 macro_expand (size_t idx, sb *in, macro_entry *m, sb *out) in macro_expand() argument
1048 if (idx < in->len && in->ptr[idx] == '.') in macro_expand()
1053 if ( idx < in->len in macro_expand()
1054 && in->ptr[idx] != ' ' in macro_expand()
1055 && in->ptr[idx] != '\t') in macro_expand()
1064 idx = get_any_string (idx, in, &n->actual); in macro_expand()
1070 idx = sb_skip_white (idx, in); in macro_expand()
1071 while (idx < in->len) in macro_expand()
1077 while (scan < in->len in macro_expand()
1078 && !ISSEP (in->ptr[scan]) in macro_expand()
1079 && !(macro_mri && in->ptr[scan] == '\'') in macro_expand()
1080 && (!macro_alternate && in->ptr[scan] != '=')) in macro_expand()
1082 if (scan < in->len && !macro_alternate && in->ptr[scan] == '=') in macro_expand()
1091 idx = get_token (idx, in, &t); in macro_expand()
1092 if (in->ptr[idx] != '=') in macro_expand()
1106 idx = get_any_string (idx + 1, in, &t); in macro_expand()
1118 idx = get_any_string (idx + 1, in, &ptr->actual); in macro_expand()
1155 idx = get_any_string (idx, in, &f->actual); in macro_expand()
1158 sb_add_buffer (&f->actual, in->ptr + idx, in->len - idx); in macro_expand()
1159 idx = in->len; in macro_expand()
1171 idx = sb_skip_comma (idx, in); in macro_expand()
1174 if (in->ptr[idx] == ',') in macro_expand()
1176 if (ISWHITE (in->ptr[idx])) in macro_expand()
1313 expand_irp (int irpc, size_t idx, sb *in, sb *out, size_t (*get_line) (sb *)) in expand_irp() argument
1320 idx = sb_skip_white (idx, in); in expand_irp()
1330 idx = get_token (idx, in, &f.name); in expand_irp()
1345 idx = sb_skip_comma (idx, in); in expand_irp()
1346 if (idx >= in->len) in expand_irp()
1355 if (irpc && in->ptr[idx] == '"') in expand_irp()
1361 while (idx < in->len) in expand_irp()
1364 idx = get_any_string (idx, in, &f.actual); in expand_irp()
1367 if (in->ptr[idx] == '"') in expand_irp()
1374 nxt = sb_skip_white (idx + 1, in); in expand_irp()
1375 if (nxt >= in->len) in expand_irp()
1382 sb_add_char (&f.actual, in->ptr[idx]); in expand_irp()
1390 idx = sb_skip_comma (idx, in); in expand_irp()
1392 idx = sb_skip_white (idx, in); in expand_irp()