Lines Matching refs:macro

508 do_formals (macro_entry *macro, size_t idx, sb *in)  in do_formals()  argument
510 formal_entry **p = &macro->formals; in do_formals()
522 if (macro->formal_count) in do_formals()
544 as_bad_where (macro->file, in do_formals()
545 macro->line, in do_formals()
548 macro->name); in do_formals()
554 as_bad_where (macro->file, in do_formals()
555 macro->line, in do_formals()
559 macro->name); in do_formals()
571 as_warn_where (macro->file, in do_formals()
572 macro->line, in do_formals()
575 macro->name); in do_formals()
580 if (str_hash_insert (macro->formal_hash, name, formal, 0) != NULL) in do_formals()
582 as_bad_where (macro->file, macro->line, in do_formals()
585 name, macro->name); in do_formals()
588 formal->index = macro->formal_count++; in do_formals()
618 if (str_hash_insert (macro->formal_hash, name, formal, 0) != NULL) in do_formals()
620 as_bad_where (macro->file, macro->line, in do_formals()
622 name, macro->name); in do_formals()
635 free_macro (macro_entry *macro) in free_macro() argument
639 for (formal = macro->formals; formal; ) in free_macro()
647 htab_delete (macro->formal_hash); in free_macro()
648 sb_kill (&macro->sub); in free_macro()
649 free ((char *) macro->name); in free_macro()
650 free (macro); in free_macro()
658 macro_entry *macro; in define_macro() local
663 macro = XNEW (macro_entry); in define_macro()
664 sb_new (&macro->sub); in define_macro()
666 macro->file = as_where (&macro->line); in define_macro()
668 macro->formal_count = 0; in define_macro()
669 macro->formals = 0; in define_macro()
670 macro->formal_hash = str_htab_create (); in define_macro()
673 if (! buffer_and_nest ("MACRO", "ENDM", &macro->sub, get_line)) in define_macro()
678 macro->name = sb_terminate (&name); in define_macro()
682 idx = do_formals (macro, idx + 1, in); in define_macro()
691 idx = do_formals (macro, idx, in); in define_macro()
699 macro->name = sb_terminate (&name); in define_macro()
705 idx = do_formals (macro, idx, in); in define_macro()
717 if (str_hash_insert (macro_hash, macro->name, macro, 0) != NULL) in define_macro()
725 as_bad_where (macro->file, macro->line, error, macro->name); in define_macro()
726 free_macro (macro); in define_macro()
727 macro = NULL; in define_macro()
730 return macro; in define_macro()
800 struct htab *formal_hash, const macro_entry *macro) in macro_expand_body() argument
842 else if (!macro) in macro_expand_body()
845 as_bad_where (macro->file, macro->line + macro_line, _("missing `)'")); in macro_expand_body()
900 if (! macro in macro_expand_body()
924 as_bad_where (macro->file, macro->line + macro_line, in macro_expand_body()
1244 macro_entry *macro; in check_macro() local
1261 macro = str_hash_find (macro_hash, copy); in check_macro()
1264 if (macro == NULL) in check_macro()
1273 *error = macro_expand (0, &line_sb, macro, expand); in check_macro()
1279 *info = macro; in check_macro()
1291 macro_entry *macro; in delete_macro() local
1299 macro = str_hash_find (macro_hash, copy); in delete_macro()
1300 if (macro != NULL) in delete_macro()