Я пишу низкоуровневый язык с goto и мне перед тем как инициализировать обращения к меткам нужно скомпилировать остальные куски кода и посчитать смещение от начала. я хочу сделать еще один тип где будут вместе и уже скомпилированные куски кода и те что еще ожидают своей стадии. это правильно?
data Stage = Read | NameResolve | TypeCheck | CodeGen data family Program (stage :: Stage) например
можно открытый список шагов иметь data StageRead data StageNameResolve data StageTypeCheck data StageCodeGen чтобы независимо поддерживать разные фронтенды и бэкенды
то есть да, правильно
недавно похожую задачу решал, но тут два типа вышло
Обсуждают сегодня