elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 10:35  


+  Foro de elhacker.net
|-+  Foros Generales
| |-+  Dudas Generales
| | |-+  Traductor en Haskell (Medio Completo)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Traductor en Haskell (Medio Completo)  (Leído 719 veces)
n3fisto

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Traductor en Haskell (Medio Completo)
« en: 9 Noviembre 2009, 17:21 »

Hola como estan estoy con un problema en lo que es programacion Funcional,
tengo que hacer un traductor en haskell no se si me pueden hechar una mano lo que tengo es esto por el momento

Mis datas

Código:
module Traduccion where
import Parsers

data Oracion = O1 Articulo Sujeto Verbo Predicado
     deriving Show
data Articulo = A1 Identificador
              | A2
     deriving Show  
data Sujeto = S1 Char
            | S2
     deriving Show
data Verbo = V1 Char
           | V2
     deriving Show

data Predicado = P1 Char
               | P2
     deriving Show

data Identificador = I1 String Identificador
                   | I2
     deriving Show


Editando este es el proceso que llegue a terminar no se si aun esta bien me falta aun ver como hago la traduccion cuando lo termine les muestro
Código:
module Traductor where
import Parsers

data Oraciones = Ora1 Oracion Oraciones
               | Ora2
          deriving Show

data Oracion = O1 Articulo Sujeto Verbo Predicado
     deriving Show
     
data Articulo = Ar1
               | Ar2
               | Ar3
               | Ar4
               
     deriving Show
 
data Sujeto  = S1 Animales
             | S2 Cosas
             | S3 Nombres
     deriving Show

data Animales = An1
             | An2
             | An3
             | An4
     deriving Show

data Cosas = Co1
             | Co2
             | Co3
             | Co4
     deriving Show

data Nombres = No1
             | No2
             | No3
             | No4
     deriving Show

data Verbo = Ve1
            | Ve2
            | Ve3
           
     deriving Show

data Predicado = P1 String Predicado
               | P2
     deriving Show


pOraciones = (\ a b -> Ora1 a b ) <$> Oracion <*> Oraciones
           <|> pSucceed Ora2
         
pOracion = (\ a s v p -> O1 a s v p ) <$> pArticulo <*> pSujeto <*> pVerbo <*> pPredicado

pArticulo = (\ a -> Ar1 ) <$> token "la"
          <|> (\ a -> Ar2 ) <$> token "el"
          <|> (\ a ->  Ar3 ) <$> token "los" 
           <|> (\ a ->  Ar4 ) <$> token "ella"

pSujeto  = (\ a -> S1 ) <$> pAnimales
        <|>(\ a -> S2 ) <$> pCosas
        <|>(\ a -> S3 ) <$> pNombres 

pAnimales = (\ a ->An1 ) <$> token "Perro"
         <|> (\ a ->An2 ) <$> token "Loro"
         <|> (\ a ->An3 ) <$> token "Gato"
         <|> (\ a ->An4 ) <$> token "Loro"

pCosas = (\ a ->Co1 ) <$> token "mesa"
      <|> (\ a ->Co2 ) <$> token "silla"
      <|> (\ a ->Co3 ) <$> token "pala"
      <|> (\ a ->Co4 ) <$> token "flores"

pNombres = (\ a ->No1 ) <$> token "Maria"
        <|> (\ a ->No2 ) <$> token "Jose"
        <|> (\ a ->No3 ) <$> token "Edgar"
        <|> (\ a ->No4 ) <$> token "Dalia"


pVerbo = (\ a -> Ve1 ) <$> token "me"
      <|> (\ a -> Ve2 ) <$> token "la"
      <|> (\ a ->Ve3 ) <$> token "es"

pPredicado = (\ a -> P1 ) <$> token "carne"
         <|> (\ a -> P2 ) <$> token "lobos"
         <|> (\ a -> P3 ) <$> token "trampas"






En proceso



« Última modificación: 11 Noviembre 2009, 02:04 por N3FISTO » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
haskell
Programación General
mapers 4 1,438 Último mensaje 25 Marzo 2011, 18:33
por Tryptophan
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines