Mercurial > ~dholland > hg > tradcpp > index.cgi
comparison macro.c @ 172:3e7e696fe558
Clean up the mess Joerg made of apply_builtin_macros().
author | David A. Holland |
---|---|
date | Fri, 12 Jun 2015 02:14:45 -0400 (2015-06-12) |
parents | 5922e6ca6b80 |
children | 09cfad6772de |
comparison
equal
deleted
inserted
replaced
171:5922e6ca6b80 | 172:3e7e696fe558 |
---|---|
600 expansionitemarray_add(&m->expansion, ei, NULL); | 600 expansionitemarray_add(&m->expansion, ei, NULL); |
601 macro_define_common_end(m); | 601 macro_define_common_end(m); |
602 } | 602 } |
603 | 603 |
604 void | 604 void |
605 macro_define_file(struct place *p) | |
606 { | |
607 struct macro *m; | |
608 struct expansionitem *ei; | |
609 | |
610 m = macro_define_common_start(p, "__FILE__", p); | |
611 ei = expansionitem_create_file(); | |
612 expansionitemarray_add(&m->expansion, ei, NULL); | |
613 macro_define_common_end(m); | |
614 } | |
615 | |
616 void | |
617 macro_define_line(struct place *p) | |
618 { | |
619 struct macro *m; | |
620 struct expansionitem *ei; | |
621 | |
622 m = macro_define_common_start(p, "__LINE__", p); | |
623 ei = expansionitem_create_line(); | |
624 expansionitemarray_add(&m->expansion, ei, NULL); | |
625 macro_define_common_end(m); | |
626 } | |
627 | |
628 void | |
629 macro_define_params(struct place *p1, const char *macro, | 605 macro_define_params(struct place *p1, const char *macro, |
630 struct place *p2, const char *params, | 606 struct place *p2, const char *params, |
631 struct place *p3, const char *expansion) | 607 struct place *p3, const char *expansion) |
632 { | 608 { |
633 struct macro *m; | 609 struct macro *m; |
634 | 610 |
635 m = macro_define_common_start(p1, macro, p3); | 611 m = macro_define_common_start(p1, macro, p3); |
636 m->hasparams = true; | 612 m->hasparams = true; |
637 macro_parse_parameters(m, p2, params); | 613 macro_parse_parameters(m, p2, params); |
638 macro_parse_expansion(m, expansion); | 614 macro_parse_expansion(m, expansion); |
615 macro_define_common_end(m); | |
616 } | |
617 | |
618 void | |
619 macro_define_magic(struct place *p, const char *macro) | |
620 { | |
621 struct macro *m; | |
622 struct expansionitem *ei; | |
623 | |
624 m = macro_define_common_start(p, macro, p); | |
625 if (!strcmp(macro, "__FILE__")) { | |
626 ei = expansionitem_create_file(); | |
627 } | |
628 else { | |
629 assert(!strcmp(macro, "__LINE__")); | |
630 ei = expansionitem_create_line(); | |
631 } | |
632 expansionitemarray_add(&m->expansion, ei, NULL); | |
639 macro_define_common_end(m); | 633 macro_define_common_end(m); |
640 } | 634 } |
641 | 635 |
642 void | 636 void |
643 macro_undef(const char *macro) | 637 macro_undef(const char *macro) |