Compiler.Mod 1000 B

12345678910111213141516171819202122
  1. (* Главный файл компилятора.
  2. Открывает файл с исходным кодом, подлежащим компиляции,
  3. передаёт его лексическому (Scanner) и синтаксическому анализатору (Parser).
  4. Запускает главную процедуру синтаксического анализатора. *)
  5. MODULE Compiler;
  6. IMPORT Out, Files, S := Scanner, P := Parser, ST := SymTable;
  7. CONST filename = "Test.Mod";
  8. VAR F: Files.File;
  9. BEGIN
  10. F := Files.Old(filename); (* В будущем название будет браться из консоли *)
  11. IF F = NIL THEN
  12. Out.String("Файл '"); Out.String(filename); Out.String("' не найден.")
  13. ELSE
  14. S.Init(F);
  15. IF P.Compile() THEN Out.String("Компиляция прошла успешно.")
  16. ELSE Out.String("В ходе компиляции возникли ошибки.")
  17. END;
  18. Files.Close(F)
  19. END;
  20. Out.Ln
  21. END Compiler.