Análisis léxico en Haskell
Ejemplos
combinación de analizadores para conseguir uno más complejo (parser combinator)
infixl 7 &><
(&><) :: ReadS a -> ReadS b -> ReadS (a,b)
p1 &>< p2 = s -> [ ((x1,x2),s2) | (x1,s1) <- p1 s,
(x2,s2) <- p2 s1 ]
MAIN> (rChar ‘a’ &>< rChar ‘b’) “abcd”
[((‘a’, ‘b’), “cd”)]
Análisis sintáctico en Haskell
En un lenguaje funcional como Haskell, es fácil traducir las reglas gramaticales directamente a especificación funcional.
Análisis sintáctico en Haskell
El paradigma funcional nos da una expresividad a la hora de representar reglas gramaticales impensable en el paradigma imperativo.
Ejemplo: función many
many :: Parser a b -> Parser a [b]
exp = term <*> many (token addOp <*> term
Página anterior | Volver al principio del trabajo | Página siguiente |