[Из песочницы] Пишем (недо)интерпретатор на Haskell с помощью alex и happy
Комментарии (1)
10 августа 2017 в 22:17
0↑
↓
data Exp = Let String Exp Exp | Exp1 Exp1 deriving (Show) data Exp1 = Plus Exp1 Term | Minus Exp1 Term | Term Term deriving (Show) data Term = Mul Term Factor | Div Term Factor | Factor Factor deriving (Show) data Factor = Num Int | Var String | Brack Exp deriving (Show)
А вот это читерство, можно было объявить и один тип Exp (благо что грамматика и так факторизована), тогда и код интерпретатора был сильно проще и уложился бы в одну функцию с паттернматчингом