Вопрос по java, syntax-highlighting, haskell – Как сделать подсветку синтаксиса для Java в Haskell?

2

Достаточно скоро я буду вынужден представить проект на Haskell, который должен сделать подсветку синтаксиса Java. Я провел некоторое исследование и обнаружил, что Happy может быть решением (так как это парсер, похожий на yacc). Также были упомянуты Бизон и Парсек. Поскольку я новичок в Хаскеле, у меня действительно нет идей, как начать этот проект. Любые советы очень помогут.

Благодарность

Ваш Ответ

4   ответа
2

у меня действительно нет идей, как начать этот проект

В этом и заключается истинный вопрос. Чтобы начать изучать Haskell, я часто рекомендую Узнай, что ты Хаскель, который можно свободно читать онлайн. Другие хорошие ресурсы, которые я рекомендую, включают Real World Haskell (немного устаревший, но все еще хороший) и Typeclassopedia.

Чтобы разобраться с предложениями пакетов, сначала нужно установить Хаскелл Платформа, а затем вы можете установить данный пакет с помощью команды:

cabal install PACKAGE

Осторожно, однако, Haskell движется очень быстрыми темпами, поэтому некоторые пакеты несовместимы друг с другом. Cabal должен помешать вам делать что-то слишком глупое, но если вы столкнетесь с запутанными зависимостями между пакетами, обратитесь за помощью к #Haskell IRC канал. Вы можете просмотреть документацию для данного модуля, щелкнув его название на странице обзора пакета. Если пакет не наhttp: //hackage.haskell.or, затем свяжитесь с владельцем или обратитесь за помощью к irc, и они помогут вам сгенерировать документацию и установить ее.

Я понятия не имею, как работают алгоритмы подсветки синтаксиса, поэтому я оставлю эту часть для исследования самостоятельно. Если вам разрешено повторно использовать существующую работу, вы, вероятно, будете использовать Языка Java пакет (как предложил Луи), чтобы проанализировать необработанный текст в абстрактном синтаксическом дереве Java, и тогда вы сможете преобразовать это синтаксическое дерево в любой цветовой формат, который вам требуется создать.

Вам следует проконсультироваться с тем, кто требует от вас выполнения этой задачи, прежде чем вкладывать значительное количество времени в какой-либо один подход, чтобы убедиться, что он приемлем.

2

использующая сгенерированные alex лексеры -https: //github.com/jgm/illuminat

Кто-нибудь знает, как исправить ошибку «Не удалось найти модуль System.Posix.Temp». Я получил это, когда я пытался установить подсветку Antonio
1
Это может сделать работу. Большое спасибо Antonio
1

language-java. Вы можете как-то адаптировать его симпатичный принтер.

Похожие вопросы