Мне нужно создать простой синтаксический анализатор для типа ввода, выраженного в виде текста.
Я реализовал FSM в Java, используя два массива int:
states[][]
actions[][]
По мере отладки я понял, что может быть проще использовать Java Enums, поскольку переменная этих типов должна отображаться в качестве значения в представлении отладки в IntelliJ. Однако, когда я начал идти по этому пути, казалось, что единственный способ использовать Enums - это поместить таблицы состояний и действий в HashMap - или есть способ создать многомерный массив, где измерения являются значениями Enum? Я бы предпочел не принимать создание объекта и снижение производительности, связанные с HashMap, если я могу помочь.
Тогда я подумал, что мог бы взглянуть на Скалу, чтобы выяснить, может ли это быть лучшим вариантом.
Итак, вопрос в том, будет ли Scala лучшим языком для выражения жесткого FSM, или мне лучше придерживаться массивов Java int?