mcpp.g 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # This file is part of asmc, a bootstrapping OS with minimal seed
  2. # Copyright (C) 2018 Giovanni Mascellani <gio@debian.org>
  3. # https://gitlab.com/giomasce/asmc
  4. # This program is free software: you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation, either version 3 of the License, or
  7. # (at your option) any later version.
  8. # This program is distributed in the hope that it will be useful,
  9. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. # GNU General Public License for more details.
  12. # You should have received a copy of the GNU General Public License
  13. # along with this program. If not, see <https://www.gnu.org/licenses/>.
  14. fun compile_mcpp 0 {
  15. $filename
  16. @filename "/disk1/mcpp/all.c" = ;
  17. # Preprocessing
  18. $ctx
  19. @ctx ppctx_init = ;
  20. ctx "ONE_SOURCE" "1" ppctx_define ;
  21. ctx filename ppctx_set_base_filename ;
  22. $tokens
  23. @tokens 4 vector_init = ;
  24. tokens ctx filename preproc_file ;
  25. @tokens tokens remove_whites = ;
  26. #@tokens filename tokenize_file = ;
  27. "Finished preprocessing\n" 1 platform_log ;
  28. #tokens print_token_list ;
  29. # Compilation
  30. $cctx
  31. @cctx tokens cctx_init = ;
  32. cctx cctx_compile ;
  33. # Debug output
  34. "TYPES TABLE\n" 1 platform_log ;
  35. cctx cctx_dump_types ;
  36. "TYPE NAMES TABLE\n" 1 platform_log ;
  37. cctx cctx_dump_typenames ;
  38. "GLOBALS TABLE\n" 1 platform_log ;
  39. cctx cctx_dump_globals ;
  40. tokens free_vect_of_ptrs ;
  41. cctx cctx_destroy ;
  42. ctx ppctx_destroy ;
  43. }