Lines Matching refs:in
256 get_token (size_t idx, sb *in, sb *name) in get_token() argument
258 if (idx < in->len in get_token()
259 && is_name_beginner (in->ptr[idx])) in get_token()
261 sb_add_char (name, in->ptr[idx++]); in get_token()
262 while (idx < in->len in get_token()
263 && is_part_of_name (in->ptr[idx])) in get_token()
265 sb_add_char (name, in->ptr[idx++]); in get_token()
267 if (idx < in->len in get_token()
268 && is_name_ender (in->ptr[idx])) in get_token()
270 sb_add_char (name, in->ptr[idx++]); in get_token()
274 if (flag_macro_alternate && idx < in->len && in->ptr[idx] == '&') in get_token()
282 getstring (size_t idx, sb *in, sb *acc) in getstring() argument
284 while (idx < in->len in getstring()
285 && (in->ptr[idx] == '"' in getstring()
286 || (in->ptr[idx] == '<' && (flag_macro_alternate || flag_mri)) in getstring()
287 || (in->ptr[idx] == '\'' && flag_macro_alternate))) in getstring()
289 if (in->ptr[idx] == '<') in getstring()
293 while (idx < in->len in getstring()
294 && (in->ptr[idx] != '>' || nest)) in getstring()
296 if (in->ptr[idx] == '!') in getstring()
299 sb_add_char (acc, in->ptr[idx++]); in getstring()
303 if (in->ptr[idx] == '>') in getstring()
305 if (in->ptr[idx] == '<') in getstring()
307 sb_add_char (acc, in->ptr[idx++]); in getstring()
312 else if (in->ptr[idx] == '"' || in->ptr[idx] == '\'') in getstring()
314 char tchar = in->ptr[idx]; in getstring()
319 while (idx < in->len) in getstring()
321 if (in->ptr[idx - 1] == '\\') in getstring()
326 if (flag_macro_alternate && in->ptr[idx] == '!') in getstring()
330 sb_add_char (acc, in->ptr[idx]); in getstring()
334 else if (escaped && in->ptr[idx] == tchar) in getstring()
341 if (in->ptr[idx] == tchar) in getstring()
345 if (idx >= in->len || in->ptr[idx] != tchar) in getstring()
349 sb_add_char (acc, in->ptr[idx]); in getstring()
368 get_any_string (size_t idx, sb *in, sb *out) in get_any_string() argument
371 idx = sb_skip_white (idx, in); in get_any_string()
373 if (idx < in->len) in get_any_string()
375 if (in->len > idx + 2 && in->ptr[idx + 1] == '\'' && ISBASE (in->ptr[idx])) in get_any_string()
377 while (idx < in->len && !ISSEP (in->ptr[idx])) in get_any_string()
378 sb_add_char (out, in->ptr[idx++]); in get_any_string()
380 else if (in->ptr[idx] == '%' && flag_macro_alternate) in get_any_string()
386 sb_terminate (in); in get_any_string()
388 temp_ilp (in->ptr + idx + 1); in get_any_string()
390 idx = input_line_pointer - in->ptr; in get_any_string()
399 else if (in->ptr[idx] == '"' in get_any_string()
400 || (in->ptr[idx] == '<' && (flag_macro_alternate || flag_mri)) in get_any_string()
401 || (flag_macro_alternate && in->ptr[idx] == '\'')) in get_any_string()
403 if (flag_macro_alternate && ! macro_strip_at && in->ptr[idx] != '<') in get_any_string()
407 idx = getstring (idx, in, out); in get_any_string()
412 idx = getstring (idx, in, out); in get_any_string()
421 while (idx < in->len in get_any_string()
423 || (in->ptr[idx] != ' ' in get_any_string()
424 && in->ptr[idx] != '\t')) in get_any_string()
425 && in->ptr[idx] != ',' in get_any_string()
426 && (in->ptr[idx] != '<' in get_any_string()
429 char tchar = in->ptr[idx]; in get_any_string()
435 sb_add_char (out, in->ptr[idx++]); in get_any_string()
436 while (idx < in->len in get_any_string()
437 && in->ptr[idx] != tchar) in get_any_string()
438 sb_add_char (out, in->ptr[idx++]); in get_any_string()
439 if (idx == in->len) in get_any_string()
508 do_formals (macro_entry *macro, size_t idx, sb *in) in do_formals() argument
513 idx = sb_skip_white (idx, in); in do_formals()
514 while (idx < in->len) in do_formals()
519 idx = get_token (idx, in, &formal->name); in do_formals()
527 idx = sb_skip_white (idx, in); in do_formals()
531 && idx < in->len in do_formals()
532 && in->ptr[idx] == ':' in do_formals()
534 || idx + 1 >= in->len in do_formals()
535 || ! is_part_of_name (in->ptr[idx + 1]))) in do_formals()
541 idx = get_token (sb_skip_white (idx + 1, in), in, &qual); in do_formals()
561 idx = sb_skip_white (idx, in); in do_formals()
563 if (idx < in->len && in->ptr[idx] == '=') in do_formals()
566 idx = get_any_string (idx + 1, in, &formal->def); in do_formals()
567 idx = sb_skip_white (idx, in); in do_formals()
594 idx = sb_skip_comma (idx, in); in do_formals()
595 if (idx != cidx && idx >= in->len) in do_formals()
656 define_macro (sb *in, sb *label, size_t (*get_line) (sb *)) in define_macro() argument
672 idx = sb_skip_white (0, in); in define_macro()
679 if (idx < in->len && in->ptr[idx] == '(') in define_macro()
682 idx = do_formals (macro, idx + 1, in); in define_macro()
683 if (idx < in->len && in->ptr[idx] == ')') in define_macro()
684 idx = sb_skip_white (idx + 1, in); in define_macro()
691 idx = do_formals (macro, idx, in); in define_macro()
698 idx = get_token (idx, in, &name); in define_macro()
702 cidx = sb_skip_white (idx, in); in define_macro()
703 idx = sb_skip_comma (cidx, in); in define_macro()
704 if (idx == cidx || idx < in->len) in define_macro()
705 idx = do_formals (macro, idx, in); in define_macro()
709 if (!error && idx < in->len) in define_macro()
736 get_apost_token (size_t idx, sb *in, sb *name, int kind) in get_apost_token() argument
738 idx = get_token (idx, in, name); in get_apost_token()
739 if (idx < in->len in get_apost_token()
740 && in->ptr[idx] == kind in get_apost_token()
750 sub_actual (size_t start, sb *in, sb *t, struct htab *formal_hash, in sub_actual() argument
756 src = get_apost_token (start, in, t, kind); in sub_actual()
761 && (src == start || in->ptr[src - 1] != '@')) in sub_actual()
781 if (src != start && in->ptr[src - 1] == '&') in sub_actual()
799 macro_expand_body (sb *in, sb *out, formal_entry *formals, in macro_expand_body() argument
810 while (src < in->len && !err) in macro_expand_body()
812 if (in->ptr[src] == '&') in macro_expand_body()
817 if (src + 1 < in->len && in->ptr[src + 1] == '&') in macro_expand_body()
818 src = sub_actual (src + 2, in, &t, formal_hash, '\'', out, 1); in macro_expand_body()
820 sb_add_char (out, in->ptr[src++]); in macro_expand_body()
826 src = sub_actual (src + 1, in, &t, formal_hash, '&', out, 0); in macro_expand_body()
829 else if (in->ptr[src] == '\\') in macro_expand_body()
832 if (src < in->len && in->ptr[src] == '(') in macro_expand_body()
836 while (src < in->len && in->ptr[src] != ')') in macro_expand_body()
838 sb_add_char (out, in->ptr[src++]); in macro_expand_body()
840 if (src < in->len) in macro_expand_body()
847 else if (src < in->len && in->ptr[src] == '@') in macro_expand_body()
856 else if (src < in->len && in->ptr[src] == '&') in macro_expand_body()
864 else if (flag_mri && src < in->len && ISALNUM (in->ptr[src])) in macro_expand_body()
869 if (ISDIGIT (in->ptr[src])) in macro_expand_body()
870 ind = in->ptr[src] - '0'; in macro_expand_body()
871 else if (ISUPPER (in->ptr[src])) in macro_expand_body()
872 ind = in->ptr[src] - 'A' + 10; in macro_expand_body()
874 ind = in->ptr[src] - 'a' + 10; in macro_expand_body()
891 src = sub_actual (src, in, &t, formal_hash, '\'', out, 0); in macro_expand_body()
895 && is_name_beginner (in->ptr[src]) in macro_expand_body()
898 || (src > 0 && in->ptr[src - 1] == '@'))) in macro_expand_body()
901 || src + 5 >= in->len in macro_expand_body()
902 || strncasecmp (in->ptr + src, "LOCAL", 5) != 0 in macro_expand_body()
903 || ! ISWHITE (in->ptr[src + 5]) in macro_expand_body()
908 src = sub_actual (src, in, &t, formal_hash, in macro_expand_body()
914 src = sb_skip_white (src + 5, in); in macro_expand_body()
915 while (in->ptr[src] != '\n') in macro_expand_body()
920 src = get_token (src, in, &f->name); in macro_expand_body()
942 src = sb_skip_comma (src, in); in macro_expand_body()
946 else if (in->ptr[src] == '"' in macro_expand_body()
947 || (flag_mri && in->ptr[src] == '\'')) in macro_expand_body()
950 sb_add_char (out, in->ptr[src++]); in macro_expand_body()
952 else if (in->ptr[src] == '@' && macro_strip_at) in macro_expand_body()
955 if (src < in->len in macro_expand_body()
956 && in->ptr[src] == '@') in macro_expand_body()
963 && in->ptr[src] == '=' in macro_expand_body()
964 && src + 1 < in->len in macro_expand_body()
965 && in->ptr[src + 1] == '=') in macro_expand_body()
970 src = get_token (src + 2, in, &t); in macro_expand_body()
1000 if (in->ptr[src] == '\n') in macro_expand_body()
1002 sb_add_char (out, in->ptr[src++]); in macro_expand_body()
1029 macro_expand (size_t idx, sb *in, macro_entry *m, sb *out) in macro_expand() argument
1051 if (idx < in->len && in->ptr[idx] == '.') in macro_expand()
1056 if ( idx < in->len in macro_expand()
1057 && in->ptr[idx] != ' ' in macro_expand()
1058 && in->ptr[idx] != '\t') in macro_expand()
1067 idx = get_any_string (idx, in, &n->actual); in macro_expand()
1073 idx = sb_skip_white (idx, in); in macro_expand()
1074 while (idx < in->len) in macro_expand()
1080 while (scan < in->len in macro_expand()
1081 && !ISSEP (in->ptr[scan]) in macro_expand()
1082 && !(flag_mri && in->ptr[scan] == '\'') in macro_expand()
1083 && (!flag_macro_alternate && in->ptr[scan] != '=')) in macro_expand()
1085 if (scan < in->len && !flag_macro_alternate && in->ptr[scan] == '=') in macro_expand()
1094 idx = get_token (idx, in, &t); in macro_expand()
1095 if (idx >= in->len || in->ptr[idx] != '=') in macro_expand()
1109 idx = get_any_string (idx + 1, in, &t); in macro_expand()
1121 idx = get_any_string (idx + 1, in, &ptr->actual); in macro_expand()
1158 idx = get_any_string (idx, in, &f->actual); in macro_expand()
1159 else if (idx < in->len) in macro_expand()
1161 sb_add_buffer (&f->actual, in->ptr + idx, in->len - idx); in macro_expand()
1162 idx = in->len; in macro_expand()
1174 idx = sb_skip_comma (idx, in); in macro_expand()
1177 if (idx < in->len && in->ptr[idx] == ',') in macro_expand()
1179 if (idx < in->len && ISWHITE (in->ptr[idx])) in macro_expand()
1312 expand_irp (int irpc, size_t idx, sb *in, sb *out, size_t (*get_line) (sb *)) in expand_irp() argument
1319 idx = sb_skip_white (idx, in); in expand_irp()
1332 idx = get_token (idx, in, &f.name); in expand_irp()
1349 idx = sb_skip_comma (idx, in); in expand_irp()
1350 if (idx >= in->len) in expand_irp()
1359 if (irpc && in->ptr[idx] == '"') in expand_irp()
1365 while (idx < in->len) in expand_irp()
1368 idx = get_any_string (idx, in, &f.actual); in expand_irp()
1371 if (in->ptr[idx] == '"') in expand_irp()
1378 nxt = sb_skip_white (idx + 1, in); in expand_irp()
1379 if (nxt >= in->len) in expand_irp()
1386 sb_add_char (&f.actual, in->ptr[idx]); in expand_irp()
1394 idx = sb_skip_comma (idx, in); in expand_irp()
1396 idx = sb_skip_white (idx, in); in expand_irp()