mcpp.g 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 tokens collapse_strings = ;
  27. #@tokens filename tokenize_file = ;
  28. "Finished preprocessing\n" log ;
  29. #tokens print_token_list ;
  30. # Compilation
  31. $cctx
  32. @cctx tokens cctx_init = ;
  33. cctx cctx_compile ;
  34. # Debug output
  35. "TYPES TABLE\n" log ;
  36. cctx cctx_dump_types ;
  37. "TYPE NAMES TABLE\n" log ;
  38. cctx cctx_dump_typenames ;
  39. "GLOBALS TABLE\n" log ;
  40. cctx cctx_dump_globals ;
  41. tokens free_vect_of_ptrs ;
  42. cctx cctx_destroy ;
  43. ctx ppctx_destroy ;
  44. }