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 |