send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Haskell] Compilador de Pseudocodigo Pascal,C++,Java

  • 0 Respuestas
  • 2037 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Snifer

  • *
  • Underc0der
  • Mensajes: 1439
  • Actividad:
    0%
  • Reputación 1
  • Snifer@L4b's
    • Ver Perfil
    • Snifer@L4bs
  • Twitter: sniferl4bs
« en: Julio 23, 2011, 07:19:34 pm »
Hola gente como estan ya de vuelta ahora les traigo este compilador de Pseudocodigo que desarrolle hace tiempo andaba con este proyecto Rna le dije pero nunca lograba terminarlo por problemas de la universidad Contratiempos.. o por ultimo mi vaganza jejeje ademas mi falta de empeño hoy me puse a revisar los errores y compilar hasta que me dio por ahora hice de Pascal Java y C++, espero ir aumentado de apoco..

Que es Haskell

Haskell es un lenguaje de programación puramente funcional de propósito general y fuertemente tipado. Su nombre proviene del lógico Haskell Curry.

En los años 1980 se constituyó un comité cuyo objetivo era crear un lenguaje funcional que reuniera las características de los múltiples lenguajes funcionales de la época, el más notable Miranda, y resolviera la confusión creada por la proliferación de los mismos. El lenguaje evoluciona rápidamente con y (ver más abajo) como los representantes actuales del estándar de facto. El último estándar semi-oficial es Haskell 98, con la intención de especificar una versión mínima y compatible del lenguaje como base para futuras extensiones y para su enseñanza.

Bueno sin mas que decir comienzo posteando

Primero la Gramatica Utilizada

Código: You are not allowed to view links. Register or Login


Prog -->  "programa" Ident ";" FP  Cuerpo 



FP -->  Funcion  FP 

      | Procedimiento  FP 

      | Vacio



Cuerpo -->  "inicio"  Decl1  Inst   "fin"



Funcion -->   "funcion"  Ident   '('  Pr   ')' ':'  Tipo  Cuerpo

       

Procedimiento -->   "procedimiento"  Ident   '('  Pr   ')'  pCuerpo



Pr -->  Decl  Decls



Decls --> ','  Pr

      | Vacio



Decl -->  Tipo  Ident



Decl1 -->  Tipo  Ident  Dec   ';'  Decl1

       | Vacio



Dec -->   ','  Ident  Dec

      | Vacio



Inst -->  Instr  Coma  Inst

      | Vacio



Coma -->   ';'

      | Vacio



Instr --> "si"  Expresion   "entonces"  Inst  OtroCaso  "fin_si"

      |   "mientras"  Expresion   "hacer"  Inst   "fin_mientras"

      |   "repetir"  Inst   "hasta"  Expresion   "fin_repetir"

      |   "para"  Asig   "hasta"  Expresion  MasF  "fin_para"

      |    pAsig

      |   "leer"  Va

      |   "mostrar"  Va

      |    Va

      |   "devolver"  Expresion

     

MasF -->  "hacer" Inst

      |  "paso"  Expresion  Inst

       

Va --> Ident  Z

     |   "''" Ident   "''"



Z -->  Va2

   |   '[' Ident   ']'

   |   '(' Ident  Va2   ')'



Va2 -->   ','  Ident  Va2

     |  Vacio



OtroCaso -->   "sino"  Inst

         | OtroVacio



Asig -->  Ident  pQ



Q -->    "<-"  Expresion

  |   '[' Ident ']'  "<-"  Expresion   



Expresion --> Relacion  A



A -->  OpLog  Expresion

  |  AVacio

 

Relacion -->  Terminos  B



B -->  SimOps  Relacion

  |  Vacio



Terminos -->  Fr  C

C --> SimOpm Terminos

  |  Vacio       



Fr -->  '('  Expresion   ')'

     | Va 

     | Entero



OpLog --> "<"

       |  "<="

       |  ">"

       |  ">="

       |  "!="

       |  "="



SimOps --> "+"

        |  "-"



SimOpm --> "*"

        |  "/"



Tipo -->   "int"  Par

      |   "real" Par

      |   "bool" Par

      |   "char" Par

      |   "string" Par





Par -->   '[' ']'

     | ParVacio

GRA.HS (Aqui se encuentra toda la gramatica)

Código: Haskell
  1. -- do not edit; automatically generated by UU_AG
  2.  
  3. module Gra where
  4.  
  5.  
  6.  
  7. import Auxiliar
  8.  
  9. type List = [You are not allowed to view links. Register or Login]
  10.  
  11. type Doble = [(You are not allowed to view links. Register or Login,You are not allowed to view links. Register or Login)]
  12.  
  13. type Classs = [(You are not allowed to view links. Register or Login,You are not allowed to view links. Register or Login)]
  14.  
  15.  
  16.  
  17.  
  18.  
  19. controlar a b | a == [] && b /= [] = b
  20.  
  21.                | a /= [] && b /= [] = b
  22.  
  23.                | You are not allowed to view links. Register or Login = a
  24.  
  25. -- A -----------------------------------------------------------
  26.  
  27. {-
  28.  
  29.    inherited attributes:
  30.  
  31.  
  32.  
  33.    chained attributes:
  34.  
  35.  
  36.  
  37.    synthesised attributes:
  38.  
  39.       cod                  : String
  40.  
  41.       jav                  : String
  42.  
  43.       nom                  : List
  44.  
  45.       pFor                 : String
  46.  
  47.       pas                  : String
  48.  
  49.       uso                  : List
  50.  
  51.       va                   : List
  52.  
  53.  
  54.  
  55. -}
  56.  
  57. {-
  58.  
  59.    local variables for A.A:
  60.  
  61.  
  62.  
  63. -}
  64.  
  65. {-
  66.  
  67.    local variables for A.AVacio:
  68.  
  69.  
  70.  
  71. -}
  72.  
  73. data A = A_A (OpLog) (Expresion)
  74.  
  75.        | A_AVacio
  76.  
  77. -- semantic domain
  78.  
  79. type T_A = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(List))
  80.  
  81. -- cata
  82.  
  83. sem_A :: (A) ->
  84.  
  85.          (T_A)
  86.  
  87. sem_A ((A_A (_opLog) (_expresion))) =
  88.  
  89.     (sem_A_A ((sem_OpLog (_opLog))) ((sem_Expresion (_expresion))))
  90.  
  91. sem_A ((A_AVacio )) =
  92.  
  93.     (sem_A_AVacio )
  94.  
  95. sem_A_A :: (T_OpLog) ->
  96.  
  97.            (T_Expresion) ->
  98.  
  99.            (T_A)
  100.  
  101. sem_A_A (_opLog) (_expresion) =
  102.  
  103.     let ( _opLog_cod,_opLog_jav,_opLog_nom,_opLog_pas,_opLog_uso,_opLog_va) =
  104.  
  105.             (_opLog )
  106.  
  107.         ( _expresion_cod,_expresion_jav,_expresion_nom,_expresion_pFor,_expresion_pas,_expresion_uso,_expresion_va) =
  108.  
  109.             (_expresion )
  110.  
  111.     in  (_opLog_cod ++ _expresion_cod,_opLog_jav ++ _expresion_jav,[],_expresion_pFor,_opLog_pas ++ _expresion_pas,_opLog_uso ++ _expresion_uso,[])
  112.  
  113. sem_A_AVacio :: (T_A)
  114.  
  115. sem_A_AVacio  =
  116.  
  117.     let
  118.  
  119.     in  ([],[],[],[],[],[],[])
  120.  
  121. -- Asig --------------------------------------------------------
  122.  
  123. {-
  124.  
  125.    inherited attributes:
  126.  
  127.  
  128.  
  129.    chained attributes:
  130.  
  131.  
  132.  
  133.    synthesised attributes:
  134.  
  135.       cod                  : String
  136.  
  137.       for                  : String
  138.  
  139.       jav                  : String
  140.  
  141.       nom                  : List
  142.  
  143.       pas                  : String
  144.  
  145.       uso                  : List
  146.  
  147.       va                   : List
  148.  
  149.  
  150.  
  151. -}
  152.  
  153. {-
  154.  
  155.    local variables for Asig.Asig:
  156.  
  157.  
  158.  
  159. -}
  160.  
  161. data Asig = Asig_Asig (You are not allowed to view links. Register or Login) (Q)
  162.  
  163. -- semantic domain
  164.  
  165. type T_Asig = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  166.  
  167. -- cata
  168.  
  169. sem_Asig :: (Asig) ->
  170.  
  171.             (T_Asig)
  172.  
  173. sem_Asig ((Asig_Asig (_string) (_q))) =
  174.  
  175.     (sem_Asig_Asig (_string) ((sem_Q (_q))))
  176.  
  177. sem_Asig_Asig :: (You are not allowed to view links. Register or Login) ->
  178.  
  179.                  (T_Q) ->
  180.  
  181.                  (T_Asig)
  182.  
  183. sem_Asig_Asig (_string) (_q) =
  184.  
  185.     let ( _q_cod,_q_jav,_q_nom,_q_pas,_q_uso,_q_va) =
  186.  
  187.             (_q )
  188.  
  189.     in  (_string ++ " "  ++ _q_cod,_string,_string ++ " "  ++ _q_jav,_q_nom,_string ++ " "  ++ _q_pas,_string : _q_uso,_q_va)
  190.  
  191. -- B -----------------------------------------------------------
  192.  
  193. {-
  194.  
  195.    inherited attributes:
  196.  
  197.  
  198.  
  199.    chained attributes:
  200.  
  201.  
  202.  
  203.    synthesised attributes:
  204.  
  205.       cod                  : String
  206.  
  207.       jav                  : String
  208.  
  209.       nom                  : List
  210.  
  211.       pFor                 : String
  212.  
  213.       pas                  : String
  214.  
  215.       uso                  : List
  216.  
  217.       va                   : List
  218.  
  219.  
  220.  
  221. -}
  222.  
  223. {-
  224.  
  225.    local variables for B.B:
  226.  
  227.  
  228.  
  229. -}
  230.  
  231. {-
  232.  
  233.    local variables for B.BVacio:
  234.  
  235.  
  236.  
  237. -}
  238.  
  239. data B = B_B (SimOps) (Relacion)
  240.  
  241.        | B_BVacio
  242.  
  243. -- semantic domain
  244.  
  245. type T_B = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(List))
  246.  
  247. -- cata
  248.  
  249. sem_B :: (B) ->
  250.  
  251.          (T_B)
  252.  
  253. sem_B ((B_B (_simOps) (_relacion))) =
  254.  
  255.     (sem_B_B ((sem_SimOps (_simOps))) ((sem_Relacion (_relacion))))
  256.  
  257. sem_B ((B_BVacio )) =
  258.  
  259.     (sem_B_BVacio )
  260.  
  261. sem_B_B :: (T_SimOps) ->
  262.  
  263.            (T_Relacion) ->
  264.  
  265.            (T_B)
  266.  
  267. sem_B_B (_simOps) (_relacion) =
  268.  
  269.     let ( _simOps_cod,_simOps_jav,_simOps_nom,_simOps_pas,_simOps_uso,_simOps_va) =
  270.  
  271.             (_simOps )
  272.  
  273.         ( _relacion_cod,_relacion_jav,_relacion_nom,_relacion_pFor,_relacion_pas,_relacion_uso,_relacion_va) =
  274.  
  275.             (_relacion )
  276.  
  277.     in  (_simOps_cod ++ _relacion_cod,_simOps_jav ++ _relacion_jav,[],_relacion_pFor,_simOps_pas ++ _relacion_pas,_simOps_uso ++ _relacion_uso,[])
  278.  
  279. sem_B_BVacio :: (T_B)
  280.  
  281. sem_B_BVacio  =
  282.  
  283.     let
  284.  
  285.     in  ([],[],[],[],[],[],[])
  286.  
  287. -- C -----------------------------------------------------------
  288.  
  289. {-
  290.  
  291.    inherited attributes:
  292.  
  293.  
  294.  
  295.    chained attributes:
  296.  
  297.  
  298.  
  299.    synthesised attributes:
  300.  
  301.       cod                  : String
  302.  
  303.       jav                  : String
  304.  
  305.       nom                  : List
  306.  
  307.       pFor                 : String
  308.  
  309.       pas                  : String
  310.  
  311.       uso                  : List
  312.  
  313.       va                   : List
  314.  
  315.  
  316.  
  317. -}
  318.  
  319. {-
  320.  
  321.    local variables for C.C:
  322.  
  323.  
  324.  
  325. -}
  326.  
  327. {-
  328.  
  329.    local variables for C.CVacio:
  330.  
  331.  
  332.  
  333. -}
  334.  
  335. data C = C_C (SimOpm) (Terminos)
  336.  
  337.        | C_CVacio
  338.  
  339. -- semantic domain
  340.  
  341. type T_C = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(List))
  342.  
  343. -- cata
  344.  
  345. sem_C :: (C) ->
  346.  
  347.          (T_C)
  348.  
  349. sem_C ((C_C (_simOpm) (_terminos))) =
  350.  
  351.     (sem_C_C ((sem_SimOpm (_simOpm))) ((sem_Terminos (_terminos))))
  352.  
  353. sem_C ((C_CVacio )) =
  354.  
  355.     (sem_C_CVacio )
  356.  
  357. sem_C_C :: (T_SimOpm) ->
  358.  
  359.            (T_Terminos) ->
  360.  
  361.            (T_C)
  362.  
  363. sem_C_C (_simOpm) (_terminos) =
  364.  
  365.     let ( _simOpm_cod,_simOpm_jav,_simOpm_nom,_simOpm_pas,_simOpm_uso,_simOpm_va) =
  366.  
  367.             (_simOpm )
  368.  
  369.         ( _terminos_cod,_terminos_jav,_terminos_nom,_terminos_pFor,_terminos_pas,_terminos_uso,_terminos_va) =
  370.  
  371.             (_terminos )
  372.  
  373.     in  (_simOpm_cod ++ _terminos_cod,_simOpm_jav ++ _terminos_jav,[],_terminos_pFor,_simOpm_pas ++ _terminos_pas,_simOpm_uso ++ _terminos_uso,[])
  374.  
  375. sem_C_CVacio :: (T_C)
  376.  
  377. sem_C_CVacio  =
  378.  
  379.     let
  380.  
  381.     in  ([],[],[],[],[],[],[])
  382.  
  383. -- Coma --------------------------------------------------------
  384.  
  385. {-
  386.  
  387.    inherited attributes:
  388.  
  389.  
  390.  
  391.    chained attributes:
  392.  
  393.  
  394.  
  395.    synthesised attributes:
  396.  
  397.       cod                  : String
  398.  
  399.       jav                  : String
  400.  
  401.       nom                  : List
  402.  
  403.       pas                  : String
  404.  
  405.       uso                  : List
  406.  
  407.       va                   : List
  408.  
  409.  
  410.  
  411. -}
  412.  
  413. {-
  414.  
  415.    local variables for Coma.C1:
  416.  
  417.  
  418.  
  419. -}
  420.  
  421. {-
  422.  
  423.    local variables for Coma.C2:
  424.  
  425.  
  426.  
  427. -}
  428.  
  429. data Coma = Coma_C1
  430.  
  431.           | Coma_C2
  432.  
  433. -- semantic domain
  434.  
  435. type T_Coma = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  436.  
  437. -- cata
  438.  
  439. sem_Coma :: (Coma) ->
  440.  
  441.             (T_Coma)
  442.  
  443. sem_Coma ((Coma_C1 )) =
  444.  
  445.     (sem_Coma_C1 )
  446.  
  447. sem_Coma ((Coma_C2 )) =
  448.  
  449.     (sem_Coma_C2 )
  450.  
  451. sem_Coma_C1 :: (T_Coma)
  452.  
  453. sem_Coma_C1  =
  454.  
  455.     let
  456.  
  457.     in  (";",";",[],";",[],[])
  458.  
  459. sem_Coma_C2 :: (T_Coma)
  460.  
  461. sem_Coma_C2  =
  462.  
  463.     let
  464.  
  465.     in  ([],[],[],[],[],[])
  466.  
  467. -- Const1 ------------------------------------------------------
  468.  
  469. {-
  470.  
  471.    inherited attributes:
  472.  
  473.  
  474.  
  475.    chained attributes:
  476.  
  477.  
  478.  
  479.    synthesised attributes:
  480.  
  481.       cod                  : String
  482.  
  483.       jav                  : String
  484.  
  485.       nom                  : List
  486.  
  487.       pas                  : String
  488.  
  489.       uso                  : List
  490.  
  491.       va                   : List
  492.  
  493.  
  494.  
  495. -}
  496.  
  497. {-
  498.  
  499.    local variables for Const1.Const1:
  500.  
  501.  
  502.  
  503. -}
  504.  
  505. data Const1 = Const1_Const1 (Tipo) (You are not allowed to view links. Register or Login) (Const2)
  506.  
  507. -- semantic domain
  508.  
  509. type T_Const1 = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  510.  
  511. -- cata
  512.  
  513. sem_Const1 :: (Const1) ->
  514.  
  515.               (T_Const1)
  516.  
  517. sem_Const1 ((Const1_Const1 (_tipo) (_string) (_const2))) =
  518.  
  519.     (sem_Const1_Const1 ((sem_Tipo (_tipo))) (_string) ((sem_Const2 (_const2))))
  520.  
  521. sem_Const1_Const1 :: (T_Tipo) ->
  522.  
  523.                      (You are not allowed to view links. Register or Login) ->
  524.  
  525.                      (T_Const2) ->
  526.  
  527.                      (T_Const1)
  528.  
  529. sem_Const1_Const1 (_tipo) (_string) (_const2) =
  530.  
  531.     let ( _tipo_cod,_tipo_jav,_tipo_nom,_tipo_pas,_tipo_uso,_tipo_va) =
  532.  
  533.             (_tipo )
  534.  
  535.         ( _const2_cod,_const2_jav,_const2_nom,_const2_pas,_const2_uso,_const2_va) =
  536.  
  537.             (_const2 )
  538.  
  539.     in  (_tipo_cod ++ " " ++ _string  ++ " " ++ "= " ++  _const2_cod,_tipo_jav ++ " " ++ _string ++ " " ++ "= " ++ _const2_jav,[],"const " ++ " " ++ _string ++ " " ++ "= " ++ _const2_pas,[],_string:[])
  540.  
  541. -- Const2 ------------------------------------------------------
  542.  
  543. {-
  544.  
  545.    inherited attributes:
  546.  
  547.  
  548.  
  549.    chained attributes:
  550.  
  551.  
  552.  
  553.    synthesised attributes:
  554.  
  555.       cod                  : String
  556.  
  557.       jav                  : String
  558.  
  559.       nom                  : List
  560.  
  561.       pas                  : String
  562.  
  563.       uso                  : List
  564.  
  565.       va                   : List
  566.  
  567.  
  568.  
  569. -}
  570.  
  571. {-
  572.  
  573.    local variables for Const2.Const21:
  574.  
  575.  
  576.  
  577. -}
  578.  
  579. {-
  580.  
  581.    local variables for Const2.Const22:
  582.  
  583.  
  584.  
  585. -}
  586.  
  587. data Const2 = Const2_Const21 (Va)
  588.  
  589.             | Const2_Const22 (You are not allowed to view links. Register or Login) (Reall)
  590.  
  591. -- semantic domain
  592.  
  593. type T_Const2 = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  594.  
  595. -- cata
  596.  
  597. sem_Const2 :: (Const2) ->
  598.  
  599.               (T_Const2)
  600.  
  601. sem_Const2 ((Const2_Const21 (_va))) =
  602.  
  603.     (sem_Const2_Const21 ((sem_Va (_va))))
  604.  
  605. sem_Const2 ((Const2_Const22 (_int) (_reall))) =
  606.  
  607.     (sem_Const2_Const22 (_int) ((sem_Reall (_reall))))
  608.  
  609. sem_Const2_Const21 :: (T_Va) ->
  610.  
  611.                       (T_Const2)
  612.  
  613. sem_Const2_Const21 (_va) =
  614.  
  615.     let ( _va_cod,_va_jav,_va_nom,_va_pFor,_va_pas,_va_uso,_va_va) =
  616.  
  617.             (_va )
  618.  
  619.     in  (_va_cod,_va_jav,_va_nom,_va_pas,_va_uso,_va_va)
  620.  
  621. sem_Const2_Const22 :: (You are not allowed to view links. Register or Login) ->
  622.  
  623.                       (T_Reall) ->
  624.  
  625.                       (T_Const2)
  626.  
  627. sem_Const2_Const22 (_int) (_reall) =
  628.  
  629.     let ( _reall_cod,_reall_jav,_reall_nom,_reall_pas,_reall_uso,_reall_va) =
  630.  
  631.             (_reall )
  632.  
  633.     in  (You are not allowed to view links. Register or Login _int ++ _reall_cod,You are not allowed to view links. Register or Login _int ++ _reall_jav,[],You are not allowed to view links. Register or Login _int ++ _reall_pas,[],[])
  634.  
  635. -- Cuerpo ------------------------------------------------------
  636.  
  637. {-
  638.  
  639.    inherited attributes:
  640.  
  641.       nomb                 : String
  642.  
  643.  
  644.  
  645.    chained attributes:
  646.  
  647.  
  648.  
  649.    synthesised attributes:
  650.  
  651.       cod                  : String
  652.  
  653.       jav                  : String
  654.  
  655.       nom                  : List
  656.  
  657.       pas                  : String
  658.  
  659.       uso                  : List
  660.  
  661.       va                   : List
  662.  
  663.  
  664.  
  665. -}
  666.  
  667. {-
  668.  
  669.    local variables for Cuerpo.Cuerpo:
  670.  
  671.  
  672.  
  673. -}
  674.  
  675. data Cuerpo = Cuerpo_Cuerpo (DeclConst) (Inst)
  676.  
  677. -- semantic domain
  678.  
  679. type T_Cuerpo = (You are not allowed to view links. Register or Login) ->
  680.  
  681.                 ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  682.  
  683. -- cata
  684.  
  685. sem_Cuerpo :: (Cuerpo) ->
  686.  
  687.               (T_Cuerpo)
  688.  
  689. sem_Cuerpo ((Cuerpo_Cuerpo (_declConst) (_inst))) =
  690.  
  691.     (sem_Cuerpo_Cuerpo ((sem_DeclConst (_declConst))) ((sem_Inst (_inst))))
  692.  
  693. sem_Cuerpo_Cuerpo :: (T_DeclConst) ->
  694.  
  695.                      (T_Inst) ->
  696.  
  697.                      (T_Cuerpo)
  698.  
  699. sem_Cuerpo_Cuerpo (_declConst) (_inst) (_lhs_nomb) =
  700.  
  701.     let ( _declConst_cod,_declConst_jav,_declConst_nom,_declConst_pas,_declConst_uso,_declConst_va) =
  702.  
  703.             (_declConst )
  704.  
  705.         ( _inst_cod,_inst_jav,_inst_nom,_inst_pas,_inst_uso,_inst_va) =
  706.  
  707.             (_inst (_lhs_nomb))
  708.  
  709.     in  ("{" ++ "\n" ++ _declConst_cod ++ "\n" ++ _inst_cod ++"\n" ++ "}" ++ "\n","{" ++ "\n" ++ _declConst_jav ++  "\n" ++ _inst_jav ++"\n" ++ "}" ++ "\n",_declConst_nom ++ _inst_nom,_declConst_pas ++ "\n" ++ "begin" ++ "\n" ++  _inst_pas ++"\n" ++ "end;",_inst_uso,_declConst_va ++ _inst_va)
  710.  
  711. -- CuerpoP -----------------------------------------------------
  712.  
  713. {-
  714.  
  715.    inherited attributes:
  716.  
  717.       nomb                 : String
  718.  
  719.  
  720.  
  721.    chained attributes:
  722.  
  723.  
  724.  
  725.    synthesised attributes:
  726.  
  727.       cod                  : String
  728.  
  729.       jav                  : String
  730.  
  731.       nom                  : List
  732.  
  733.       pas                  : String
  734.  
  735.       uso                  : List
  736.  
  737.       va                   : List
  738.  
  739.  
  740.  
  741. -}
  742.  
  743. {-
  744.  
  745.    local variables for CuerpoP.CuerpoP:
  746.  
  747.  
  748.  
  749. -}
  750.  
  751. data CuerpoP = CuerpoP_CuerpoP (DeclConst) (Inst)
  752.  
  753. -- semantic domain
  754.  
  755. type T_CuerpoP = (You are not allowed to view links. Register or Login) ->
  756.  
  757.                  ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  758.  
  759. -- cata
  760.  
  761. sem_CuerpoP :: (CuerpoP) ->
  762.  
  763.                (T_CuerpoP)
  764.  
  765. sem_CuerpoP ((CuerpoP_CuerpoP (_declConst) (_inst))) =
  766.  
  767.     (sem_CuerpoP_CuerpoP ((sem_DeclConst (_declConst))) ((sem_Inst (_inst))))
  768.  
  769. sem_CuerpoP_CuerpoP :: (T_DeclConst) ->
  770.  
  771.                        (T_Inst) ->
  772.  
  773.                        (T_CuerpoP)
  774.  
  775. sem_CuerpoP_CuerpoP (_declConst) (_inst) (_lhs_nomb) =
  776.  
  777.     let ( _declConst_cod,_declConst_jav,_declConst_nom,_declConst_pas,_declConst_uso,_declConst_va) =
  778.  
  779.             (_declConst )
  780.  
  781.         ( _inst_cod,_inst_jav,_inst_nom,_inst_pas,_inst_uso,_inst_va) =
  782.  
  783.             (_inst (_lhs_nomb))
  784.  
  785.     in  ("{" ++ "\n" ++ _declConst_cod ++ "\n" ++ _inst_cod ++"\n" ++ "return (0);" ++ "\n" ++ "}" ++"\n","{" ++ "\n" ++ _declConst_jav ++ "\n" ++ " Scanner teclado=new Scanner(System.in); " ++ "\n" ++ _inst_jav ++"\n" ++ "}" ++"\n",_declConst_nom ++ _inst_nom,_declConst_pas ++ "\n" ++ "begin" ++ "\n" ++ _inst_pas ++"\n" ++ "end.",_inst_uso,_declConst_va ++ _inst_va)
  786.  
  787. -- Dec ---------------------------------------------------------
  788.  
  789. {-
  790.  
  791.    inherited attributes:
  792.  
  793.  
  794.  
  795.    chained attributes:
  796.  
  797.  
  798.  
  799.    synthesised attributes:
  800.  
  801.       cod                  : String
  802.  
  803.       jav                  : String
  804.  
  805.       nom                  : List
  806.  
  807.       pas                  : String
  808.  
  809.       uso                  : List
  810.  
  811.       va                   : List
  812.  
  813.  
  814.  
  815. -}
  816.  
  817. {-
  818.  
  819.    local variables for Dec.Dec1:
  820.  
  821.  
  822.  
  823. -}
  824.  
  825. {-
  826.  
  827.    local variables for Dec.DecVacio:
  828.  
  829.  
  830.  
  831. -}
  832.  
  833. data Dec = Dec_Dec1 (You are not allowed to view links. Register or Login) (Dec)
  834.  
  835.          | Dec_DecVacio
  836.  
  837. -- semantic domain
  838.  
  839. type T_Dec = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  840.  
  841. -- cata
  842.  
  843. sem_Dec :: (Dec) ->
  844.  
  845.            (T_Dec)
  846.  
  847. sem_Dec ((Dec_Dec1 (_string) (_dec))) =
  848.  
  849.     (sem_Dec_Dec1 (_string) ((sem_Dec (_dec))))
  850.  
  851. sem_Dec ((Dec_DecVacio )) =
  852.  
  853.     (sem_Dec_DecVacio )
  854.  
  855. sem_Dec_Dec1 :: (You are not allowed to view links. Register or Login) ->
  856.  
  857.                 (T_Dec) ->
  858.  
  859.                 (T_Dec)
  860.  
  861. sem_Dec_Dec1 (_string) (_dec) =
  862.  
  863.     let ( _dec_cod,_dec_jav,_dec_nom,_dec_pas,_dec_uso,_dec_va) =
  864.  
  865.             (_dec )
  866.  
  867.     in  (", " ++ _string ++ " " ++ _dec_cod,", " ++ _string ++ " " ++ _dec_jav,[],", " ++ _string ++ " " ++ _dec_pas,[],_string : _dec_va)
  868.  
  869. sem_Dec_DecVacio :: (T_Dec)
  870.  
  871. sem_Dec_DecVacio  =
  872.  
  873.     let
  874.  
  875.     in  ([],[],[],[],[],[])
  876.  
  877. -- Decl --------------------------------------------------------
  878.  
  879. {-
  880.  
  881.    inherited attributes:
  882.  
  883.  
  884.  
  885.    chained attributes:
  886.  
  887.  
  888.  
  889.    synthesised attributes:
  890.  
  891.       cod                  : String
  892.  
  893.       jav                  : String
  894.  
  895.       nom                  : List
  896.  
  897.       pas                  : String
  898.  
  899.       uso                  : List
  900.  
  901.       va                   : List
  902.  
  903.  
  904.  
  905. -}
  906.  
  907. {-
  908.  
  909.    local variables for Decl.Decl:
  910.  
  911.  
  912.  
  913. -}
  914.  
  915. data Decl = Decl_Decl (Tipo) (You are not allowed to view links. Register or Login)
  916.  
  917. -- semantic domain
  918.  
  919. type T_Decl = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  920.  
  921. -- cata
  922.  
  923. sem_Decl :: (Decl) ->
  924.  
  925.             (T_Decl)
  926.  
  927. sem_Decl ((Decl_Decl (_tipo) (_string))) =
  928.  
  929.     (sem_Decl_Decl ((sem_Tipo (_tipo))) (_string))
  930.  
  931. sem_Decl_Decl :: (T_Tipo) ->
  932.  
  933.                  (You are not allowed to view links. Register or Login) ->
  934.  
  935.                  (T_Decl)
  936.  
  937. sem_Decl_Decl (_tipo) (_string) =
  938.  
  939.     let ( _tipo_cod,_tipo_jav,_tipo_nom,_tipo_pas,_tipo_uso,_tipo_va) =
  940.  
  941.             (_tipo )
  942.  
  943.     in  (_tipo_cod ++ _string,_tipo_jav ++ " " ++ _string,_tipo_nom:[],_string ++ ": " ++ _tipo_pas,[],_string : [])
  944.  
  945. -- Decl1 -------------------------------------------------------
  946.  
  947. {-
  948.  
  949.    inherited attributes:
  950.  
  951.  
  952.  
  953.    chained attributes:
  954.  
  955.  
  956.  
  957.    synthesised attributes:
  958.  
  959.       cod                  : String
  960.  
  961.       jav                  : String
  962.  
  963.       nom                  : List
  964.  
  965.       pas                  : String
  966.  
  967.       uso                  : List
  968.  
  969.       va                   : List
  970.  
  971.  
  972.  
  973. -}
  974.  
  975. {-
  976.  
  977.    local variables for Decl1.Decl1:
  978.  
  979.  
  980.  
  981. -}
  982.  
  983. data Decl1 = Decl1_Decl1 (Tipo) (You are not allowed to view links. Register or Login) (Dec)
  984.  
  985. -- semantic domain
  986.  
  987. type T_Decl1 = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  988.  
  989. -- cata
  990.  
  991. sem_Decl1 :: (Decl1) ->
  992.  
  993.              (T_Decl1)
  994.  
  995. sem_Decl1 ((Decl1_Decl1 (_tipo) (_string) (_dec))) =
  996.  
  997.     (sem_Decl1_Decl1 ((sem_Tipo (_tipo))) (_string) ((sem_Dec (_dec))))
  998.  
  999. sem_Decl1_Decl1 :: (T_Tipo) ->
  1000.  
  1001.                    (You are not allowed to view links. Register or Login) ->
  1002.  
  1003.                    (T_Dec) ->
  1004.  
  1005.                    (T_Decl1)
  1006.  
  1007. sem_Decl1_Decl1 (_tipo) (_string) (_dec) =
  1008.  
  1009.     let ( _tipo_cod,_tipo_jav,_tipo_nom,_tipo_pas,_tipo_uso,_tipo_va) =
  1010.  
  1011.             (_tipo )
  1012.  
  1013.         ( _dec_cod,_dec_jav,_dec_nom,_dec_pas,_dec_uso,_dec_va) =
  1014.  
  1015.             (_dec )
  1016.  
  1017.     in  (_tipo_cod ++ " " ++ _string ++ " " ++ _dec_cod,_tipo_jav ++ " " ++ _string ++ " " ++ _dec_jav,_dec_nom,"var " ++ _string ++ _dec_pas  ++ ": " ++ _tipo_pas,[],_string : _dec_va)
  1018.  
  1019. -- DeclConst ---------------------------------------------------
  1020.  
  1021. {-
  1022.  
  1023.    inherited attributes:
  1024.  
  1025.  
  1026.  
  1027.    chained attributes:
  1028.  
  1029.  
  1030.  
  1031.    synthesised attributes:
  1032.  
  1033.       cod                  : String
  1034.  
  1035.       jav                  : String
  1036.  
  1037.       nom                  : List
  1038.  
  1039.       pas                  : String
  1040.  
  1041.       uso                  : List
  1042.  
  1043.       va                   : List
  1044.  
  1045.  
  1046.  
  1047. -}
  1048.  
  1049. {-
  1050.  
  1051.    local variables for DeclConst.DeclConst:
  1052.  
  1053.  
  1054.  
  1055. -}
  1056.  
  1057. {-
  1058.  
  1059.    local variables for DeclConst.DeclConst1:
  1060.  
  1061.  
  1062.  
  1063. -}
  1064.  
  1065. {-
  1066.  
  1067.    local variables for DeclConst.DeclConst2:
  1068.  
  1069.  
  1070.  
  1071. -}
  1072.  
  1073. data DeclConst = DeclConst_DeclConst (Decl1) (DeclConst)
  1074.  
  1075.                | DeclConst_DeclConst1 (Const1) (DeclConst)
  1076.  
  1077.                | DeclConst_DeclConst2
  1078.  
  1079. -- semantic domain
  1080.  
  1081. type T_DeclConst = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  1082.  
  1083. -- cata
  1084.  
  1085. sem_DeclConst :: (DeclConst) ->
  1086.  
  1087.                  (T_DeclConst)
  1088.  
  1089. sem_DeclConst ((DeclConst_DeclConst (_decl1) (_declConst))) =
  1090.  
  1091.     (sem_DeclConst_DeclConst ((sem_Decl1 (_decl1))) ((sem_DeclConst (_declConst))))
  1092.  
  1093. sem_DeclConst ((DeclConst_DeclConst1 (_const1) (_declConst))) =
  1094.  
  1095.     (sem_DeclConst_DeclConst1 ((sem_Const1 (_const1))) ((sem_DeclConst (_declConst))))
  1096.  
  1097. sem_DeclConst ((DeclConst_DeclConst2 )) =
  1098.  
  1099.     (sem_DeclConst_DeclConst2 )
  1100.  
  1101. sem_DeclConst_DeclConst :: (T_Decl1) ->
  1102.  
  1103.                            (T_DeclConst) ->
  1104.  
  1105.                            (T_DeclConst)
  1106.  
  1107. sem_DeclConst_DeclConst (_decl1) (_declConst) =
  1108.  
  1109.     let ( _decl1_cod,_decl1_jav,_decl1_nom,_decl1_pas,_decl1_uso,_decl1_va) =
  1110.  
  1111.             (_decl1 )
  1112.  
  1113.         ( _declConst_cod,_declConst_jav,_declConst_nom,_declConst_pas,_declConst_uso,_declConst_va) =
  1114.  
  1115.             (_declConst )
  1116.  
  1117.     in  (_decl1_cod ++ " ;" ++ "\n" ++ _declConst_cod,_decl1_jav ++ " ;" ++ "\n" ++ _declConst_jav,[],_decl1_pas ++ " ;" ++ "\n" ++ _declConst_pas,[],_decl1_va ++ _declConst_va)
  1118.  
  1119. sem_DeclConst_DeclConst1 :: (T_Const1) ->
  1120.  
  1121.                             (T_DeclConst) ->
  1122.  
  1123.                             (T_DeclConst)
  1124.  
  1125. sem_DeclConst_DeclConst1 (_const1) (_declConst) =
  1126.  
  1127.     let ( _const1_cod,_const1_jav,_const1_nom,_const1_pas,_const1_uso,_const1_va) =
  1128.  
  1129.             (_const1 )
  1130.  
  1131.         ( _declConst_cod,_declConst_jav,_declConst_nom,_declConst_pas,_declConst_uso,_declConst_va) =
  1132.  
  1133.             (_declConst )
  1134.  
  1135.     in  (_const1_cod ++ " ;" ++ "\n" ++ _declConst_cod,_const1_jav ++ " ;" ++ "\n" ++ _declConst_jav,[],_const1_pas ++ " ;" ++ "\n" ++ _declConst_pas,[],_const1_va ++ _declConst_va)
  1136.  
  1137. sem_DeclConst_DeclConst2 :: (T_DeclConst)
  1138.  
  1139. sem_DeclConst_DeclConst2  =
  1140.  
  1141.     let
  1142.  
  1143.     in  ([],[],[],[],[],[])
  1144.  
  1145. -- Decls -------------------------------------------------------
  1146.  
  1147. {-
  1148.  
  1149.    inherited attributes:
  1150.  
  1151.  
  1152.  
  1153.    chained attributes:
  1154.  
  1155.  
  1156.  
  1157.    synthesised attributes:
  1158.  
  1159.       cod                  : String
  1160.  
  1161.       jav                  : String
  1162.  
  1163.       nom                  : List
  1164.  
  1165.       pas                  : String
  1166.  
  1167.       uso                  : List
  1168.  
  1169.       va                   : List
  1170.  
  1171.  
  1172.  
  1173. -}
  1174.  
  1175. {-
  1176.  
  1177.    local variables for Decls.Decls:
  1178.  
  1179.  
  1180.  
  1181. -}
  1182.  
  1183. {-
  1184.  
  1185.    local variables for Decls.DeclsVacio:
  1186.  
  1187.  
  1188.  
  1189. -}
  1190.  
  1191. data Decls = Decls_Decls (Pr)
  1192.  
  1193.            | Decls_DeclsVacio
  1194.  
  1195. -- semantic domain
  1196.  
  1197. type T_Decls = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  1198.  
  1199. -- cata
  1200.  
  1201. sem_Decls :: (Decls) ->
  1202.  
  1203.              (T_Decls)
  1204.  
  1205. sem_Decls ((Decls_Decls (_pr))) =
  1206.  
  1207.     (sem_Decls_Decls ((sem_Pr (_pr))))
  1208.  
  1209. sem_Decls ((Decls_DeclsVacio )) =
  1210.  
  1211.     (sem_Decls_DeclsVacio )
  1212.  
  1213. sem_Decls_Decls :: (T_Pr) ->
  1214.  
  1215.                    (T_Decls)
  1216.  
  1217. sem_Decls_Decls (_pr) =
  1218.  
  1219.     let ( _pr_cod,_pr_jav,_pr_nom,_pr_pas,_pr_uso,_pr_va) =
  1220.  
  1221.             (_pr )
  1222.  
  1223.     in  ("," ++ " " ++ _pr_cod,"," ++ " " ++ _pr_jav,_pr_nom,";" ++ " " ++ _pr_pas,_pr_uso,_pr_va)
  1224.  
  1225. sem_Decls_DeclsVacio :: (T_Decls)
  1226.  
  1227. sem_Decls_DeclsVacio  =
  1228.  
  1229.     let
  1230.  
  1231.     in  ([],[],[],[],[],[])
  1232.  
  1233. -- EnCaso ------------------------------------------------------
  1234.  
  1235. {-
  1236.  
  1237.    inherited attributes:
  1238.  
  1239.       nomb                 : String
  1240.  
  1241.  
  1242.  
  1243.    chained attributes:
  1244.  
  1245.  
  1246.  
  1247.    synthesised attributes:
  1248.  
  1249.       cod                  : String
  1250.  
  1251.       jav                  : String
  1252.  
  1253.       nom                  : List
  1254.  
  1255.       pas                  : String
  1256.  
  1257.       uso                  : List
  1258.  
  1259.       va                   : List
  1260.  
  1261.  
  1262.  
  1263. -}
  1264.  
  1265. {-
  1266.  
  1267.    local variables for EnCaso.EnCaso:
  1268.  
  1269.  
  1270.  
  1271. -}
  1272.  
  1273. {-
  1274.  
  1275.    local variables for EnCaso.EnCaso1:
  1276.  
  1277.  
  1278.  
  1279. -}
  1280.  
  1281. data EnCaso = EnCaso_EnCaso (Expresion) (Inst) (EnCaso)
  1282.  
  1283.             | EnCaso_EnCaso1
  1284.  
  1285. -- semantic domain
  1286.  
  1287. type T_EnCaso = (You are not allowed to view links. Register or Login) ->
  1288.  
  1289.                 ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  1290.  
  1291. -- cata
  1292.  
  1293. sem_EnCaso :: (EnCaso) ->
  1294.  
  1295.               (T_EnCaso)
  1296.  
  1297. sem_EnCaso ((EnCaso_EnCaso (_expresion) (_inst) (_enCaso))) =
  1298.  
  1299.     (sem_EnCaso_EnCaso ((sem_Expresion (_expresion))) ((sem_Inst (_inst))) ((sem_EnCaso (_enCaso))))
  1300.  
  1301. sem_EnCaso ((EnCaso_EnCaso1 )) =
  1302.  
  1303.     (sem_EnCaso_EnCaso1 )
  1304.  
  1305. sem_EnCaso_EnCaso :: (T_Expresion) ->
  1306.  
  1307.                      (T_Inst) ->
  1308.  
  1309.                      (T_EnCaso) ->
  1310.  
  1311.                      (T_EnCaso)
  1312.  
  1313. sem_EnCaso_EnCaso (_expresion) (_inst) (_enCaso) (_lhs_nomb) =
  1314.  
  1315.     let ( _expresion_cod,_expresion_jav,_expresion_nom,_expresion_pFor,_expresion_pas,_expresion_uso,_expresion_va) =
  1316.  
  1317.             (_expresion )
  1318.  
  1319.         ( _inst_cod,_inst_jav,_inst_nom,_inst_pas,_inst_uso,_inst_va) =
  1320.  
  1321.             (_inst (_lhs_nomb))
  1322.  
  1323.         ( _enCaso_cod,_enCaso_jav,_enCaso_nom,_enCaso_pas,_enCaso_uso,_enCaso_va) =
  1324.  
  1325.             (_enCaso (_lhs_nomb))
  1326.  
  1327.     in  ("case " ++ _expresion_cod ++ " : " ++ _inst_cod ++  " ;" ++ "\n" ++ " break ; " ++ "\n" ++ _enCaso_cod,"case " ++ _expresion_jav ++ " : " ++ _inst_jav ++  " ;" ++ "\n" ++ " break ; " ++ "\n" ++ _enCaso_jav,_expresion_nom,_expresion_pas ++ " : " ++ "begin " ++ "\n" ++ _inst_pas ++ "end;" ++ "\n" ++ _enCaso_pas,_expresion_uso ++ _inst_uso ++ _enCaso_uso,_expresion_va)
  1328.  
  1329. sem_EnCaso_EnCaso1 :: (T_EnCaso)
  1330.  
  1331. sem_EnCaso_EnCaso1 (_lhs_nomb) =
  1332.  
  1333.     let
  1334.  
  1335.     in  ([],[],[],[],[],[])
  1336.  
  1337. -- Expresion ---------------------------------------------------
  1338.  
  1339. {-
  1340.  
  1341.    inherited attributes:
  1342.  
  1343.  
  1344.  
  1345.    chained attributes:
  1346.  
  1347.  
  1348.  
  1349.    synthesised attributes:
  1350.  
  1351.       cod                  : String
  1352.  
  1353.       jav                  : String
  1354.  
  1355.       nom                  : List
  1356.  
  1357.       pFor                 : String
  1358.  
  1359.       pas                  : String
  1360.  
  1361.       uso                  : List
  1362.  
  1363.       va                   : List
  1364.  
  1365.  
  1366.  
  1367. -}
  1368.  
  1369. {-
  1370.  
  1371.    local variables for Expresion.Expresion:
  1372.  
  1373.  
  1374.  
  1375. -}
  1376.  
  1377. data Expresion = Expresion_Expresion (Relacion) (A)
  1378.  
  1379. -- semantic domain
  1380.  
  1381. type T_Expresion = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(List))
  1382.  
  1383. -- cata
  1384.  
  1385. sem_Expresion :: (Expresion) ->
  1386.  
  1387.                  (T_Expresion)
  1388.  
  1389. sem_Expresion ((Expresion_Expresion (_relacion) (_a))) =
  1390.  
  1391.     (sem_Expresion_Expresion ((sem_Relacion (_relacion))) ((sem_A (_a))))
  1392.  
  1393. sem_Expresion_Expresion :: (T_Relacion) ->
  1394.  
  1395.                            (T_A) ->
  1396.  
  1397.                            (T_Expresion)
  1398.  
  1399. sem_Expresion_Expresion (_relacion) (_a) =
  1400.  
  1401.     let ( _relacion_cod,_relacion_jav,_relacion_nom,_relacion_pFor,_relacion_pas,_relacion_uso,_relacion_va) =
  1402.  
  1403.             (_relacion )
  1404.  
  1405.         ( _a_cod,_a_jav,_a_nom,_a_pFor,_a_pas,_a_uso,_a_va) =
  1406.  
  1407.             (_a )
  1408.  
  1409.     in  (_relacion_cod ++ _a_cod,_relacion_jav ++ _a_jav,[],controlar _relacion_pFor _a_pFor,_relacion_pas ++ _a_pas,_relacion_uso ++ _a_uso,[])
  1410.  
  1411. -- FP ----------------------------------------------------------
  1412.  
  1413. {-
  1414.  
  1415.    inherited attributes:
  1416.  
  1417.       nomb                 : String
  1418.  
  1419.  
  1420.  
  1421.    chained attributes:
  1422.  
  1423.  
  1424.  
  1425.    synthesised attributes:
  1426.  
  1427.       cap                  : String
  1428.  
  1429.       claser               : Classs
  1430.  
  1431.       cod                  : String
  1432.  
  1433.       dod                  : Doble
  1434.  
  1435.       jav                  : String
  1436.  
  1437.       nom                  : List
  1438.  
  1439.       npf                  : List
  1440.  
  1441.       pas                  : String
  1442.  
  1443.       uso                  : List
  1444.  
  1445.       va                   : List
  1446.  
  1447.  
  1448.  
  1449. -}
  1450.  
  1451. {-
  1452.  
  1453.    local variables for FP.FP:
  1454.  
  1455.  
  1456.  
  1457. -}
  1458.  
  1459. {-
  1460.  
  1461.    local variables for FP.FP1:
  1462.  
  1463.  
  1464.  
  1465. -}
  1466.  
  1467. {-
  1468.  
  1469.    local variables for FP.FPVacio:
  1470.  
  1471.  
  1472.  
  1473. -}
  1474.  
  1475. data FP = FP_FP (Funcion) (FP)
  1476.  
  1477.         | FP_FP1 (Procedimiento) (FP)
  1478.  
  1479.         | FP_FPVacio
  1480.  
  1481. -- semantic domain
  1482.  
  1483. type T_FP = (You are not allowed to view links. Register or Login) ->
  1484.  
  1485.             ((You are not allowed to view links. Register or Login),(Classs),(You are not allowed to view links. Register or Login),(Doble),(You are not allowed to view links. Register or Login),(List),(List),(You are not allowed to view links. Register or Login),(List),(List))
  1486.  
  1487. -- cata
  1488.  
  1489. sem_FP :: (FP) ->
  1490.  
  1491.           (T_FP)
  1492.  
  1493. sem_FP ((FP_FP (_funcion) (_fP))) =
  1494.  
  1495.     (sem_FP_FP ((sem_Funcion (_funcion))) ((sem_FP (_fP))))
  1496.  
  1497. sem_FP ((FP_FP1 (_procedimiento) (_fP))) =
  1498.  
  1499.     (sem_FP_FP1 ((sem_Procedimiento (_procedimiento))) ((sem_FP (_fP))))
  1500.  
  1501. sem_FP ((FP_FPVacio )) =
  1502.  
  1503.     (sem_FP_FPVacio )
  1504.  
  1505. sem_FP_FP :: (T_Funcion) ->
  1506.  
  1507.              (T_FP) ->
  1508.  
  1509.              (T_FP)
  1510.  
  1511. sem_FP_FP (_funcion) (_fP) (_lhs_nomb) =
  1512.  
  1513.     let ( _funcion_cap,_funcion_claser,_funcion_cod,_funcion_dod,_funcion_jav,_funcion_nom,_funcion_npf,_funcion_pas,_funcion_uso,_funcion_va) =
  1514.  
  1515.             (_funcion (_lhs_nomb))
  1516.  
  1517.         ( _fP_cap,_fP_claser,_fP_cod,_fP_dod,_fP_jav,_fP_nom,_fP_npf,_fP_pas,_fP_uso,_fP_va) =
  1518.  
  1519.             (_fP (_lhs_nomb))
  1520.  
  1521.     in  (_funcion_cap,_funcion_claser ++ _fP_claser,_funcion_cod ++ "\n" ++ _fP_cod ++ "\n",_funcion_dod ++ _fP_dod,_funcion_jav ++ "\n" ++ _fP_jav ++ "\n",_funcion_nom ++ _fP_nom,_funcion_npf ++ _fP_npf,_funcion_pas ++ "\n" ++ _fP_pas ++ "\n",_funcion_uso ++ _fP_uso,_funcion_va ++ _fP_va)
  1522.  
  1523. sem_FP_FP1 :: (T_Procedimiento) ->
  1524.  
  1525.               (T_FP) ->
  1526.  
  1527.               (T_FP)
  1528.  
  1529. sem_FP_FP1 (_procedimiento) (_fP) (_lhs_nomb) =
  1530.  
  1531.     let ( _procedimiento_cap,_procedimiento_claser,_procedimiento_cod,_procedimiento_dod,_procedimiento_jav,_procedimiento_nom,_procedimiento_npf,_procedimiento_pas,_procedimiento_uso,_procedimiento_va) =
  1532.  
  1533.             (_procedimiento (_lhs_nomb))
  1534.  
  1535.         ( _fP_cap,_fP_claser,_fP_cod,_fP_dod,_fP_jav,_fP_nom,_fP_npf,_fP_pas,_fP_uso,_fP_va) =
  1536.  
  1537.             (_fP (_lhs_nomb))
  1538.  
  1539.     in  (_procedimiento_cap,_fP_claser,_procedimiento_cod ++ "\n" ++ _fP_cod ++ "\n",_procedimiento_dod ++ _fP_dod,_procedimiento_jav ++ "\n" ++ _fP_jav ++ "\n",_procedimiento_nom ++ _fP_nom,_procedimiento_npf ++ _fP_npf,_procedimiento_pas ++ "\n" ++ _fP_pas ++ "\n",_procedimiento_uso ++ _fP_uso,_procedimiento_va ++ _fP_va)
  1540.  
  1541. sem_FP_FPVacio :: (T_FP)
  1542.  
  1543. sem_FP_FPVacio (_lhs_nomb) =
  1544.  
  1545.     let
  1546.  
  1547.     in  ("",[],[],[],[],[],[],[],[],[])
  1548.  
  1549. -- Fr ----------------------------------------------------------
  1550.  
  1551. {-
  1552.  
  1553.    inherited attributes:
  1554.  
  1555.  
  1556.  
  1557.    chained attributes:
  1558.  
  1559.  
  1560.  
  1561.    synthesised attributes:
  1562.  
  1563.       cod                  : String
  1564.  
  1565.       jav                  : String
  1566.  
  1567.       nom                  : List
  1568.  
  1569.       pFor                 : String
  1570.  
  1571.       pas                  : String
  1572.  
  1573.       uso                  : List
  1574.  
  1575.       va                   : List
  1576.  
  1577.  
  1578.  
  1579. -}
  1580.  
  1581. {-
  1582.  
  1583.    local variables for Fr.Fr:
  1584.  
  1585.  
  1586.  
  1587. -}
  1588.  
  1589. {-
  1590.  
  1591.    local variables for Fr.Fr1:
  1592.  
  1593.  
  1594.  
  1595. -}
  1596.  
  1597. {-
  1598.  
  1599.    local variables for Fr.Fr2:
  1600.  
  1601.  
  1602.  
  1603. -}
  1604.  
  1605. data Fr = Fr_Fr (Expresion)
  1606.  
  1607.         | Fr_Fr1 (Va)
  1608.  
  1609.         | Fr_Fr2 (You are not allowed to view links. Register or Login) (Reall)
  1610.  
  1611. -- semantic domain
  1612.  
  1613. type T_Fr = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(List))
  1614.  
  1615. -- cata
  1616.  
  1617. sem_Fr :: (Fr) ->
  1618.  
  1619.           (T_Fr)
  1620.  
  1621. sem_Fr ((Fr_Fr (_expresion))) =
  1622.  
  1623.     (sem_Fr_Fr ((sem_Expresion (_expresion))))
  1624.  
  1625. sem_Fr ((Fr_Fr1 (_va))) =
  1626.  
  1627.     (sem_Fr_Fr1 ((sem_Va (_va))))
  1628.  
  1629. sem_Fr ((Fr_Fr2 (_int) (_reall))) =
  1630.  
  1631.     (sem_Fr_Fr2 (_int) ((sem_Reall (_reall))))
  1632.  
  1633. sem_Fr_Fr :: (T_Expresion) ->
  1634.  
  1635.              (T_Fr)
  1636.  
  1637. sem_Fr_Fr (_expresion) =
  1638.  
  1639.     let ( _expresion_cod,_expresion_jav,_expresion_nom,_expresion_pFor,_expresion_pas,_expresion_uso,_expresion_va) =
  1640.  
  1641.             (_expresion )
  1642.  
  1643.     in  ("(" ++ _expresion_cod ++ ")","(" ++ _expresion_jav ++ ")",[],"(" ++ _expresion_pFor ++ ")","(" ++ _expresion_pas ++ ")",_expresion_uso,[])
  1644.  
  1645. sem_Fr_Fr1 :: (T_Va) ->
  1646.  
  1647.               (T_Fr)
  1648.  
  1649. sem_Fr_Fr1 (_va) =
  1650.  
  1651.     let ( _va_cod,_va_jav,_va_nom,_va_pFor,_va_pas,_va_uso,_va_va) =
  1652.  
  1653.             (_va )
  1654.  
  1655.     in  (_va_cod,_va_jav,[],_va_pFor,_va_pas,_va_uso,[])
  1656.  
  1657. sem_Fr_Fr2 :: (You are not allowed to view links. Register or Login) ->
  1658.  
  1659.               (T_Reall) ->
  1660.  
  1661.               (T_Fr)
  1662.  
  1663. sem_Fr_Fr2 (_int) (_reall) =
  1664.  
  1665.     let ( _reall_cod,_reall_jav,_reall_nom,_reall_pas,_reall_uso,_reall_va) =
  1666.  
  1667.             (_reall )
  1668.  
  1669.     in  (You are not allowed to view links. Register or Login _int ++ _reall_cod,You are not allowed to view links. Register or Login _int ++ _reall_jav,[],You are not allowed to view links. Register or Login _int,You are not allowed to view links. Register or Login _int ++ _reall_pas,[],[])
  1670.  
  1671. -- Funcion -----------------------------------------------------
  1672.  
  1673. {-
  1674.  
  1675.    inherited attributes:
  1676.  
  1677.       nomb                 : String
  1678.  
  1679.  
  1680.  
  1681.    chained attributes:
  1682.  
  1683.  
  1684.  
  1685.    synthesised attributes:
  1686.  
  1687.       cap                  : String
  1688.  
  1689.       claser               : Classs
  1690.  
  1691.       cod                  : String
  1692.  
  1693.       dod                  : Doble
  1694.  
  1695.       jav                  : String
  1696.  
  1697.       nom                  : List
  1698.  
  1699.       npf                  : List
  1700.  
  1701.       pas                  : String
  1702.  
  1703.       uso                  : List
  1704.  
  1705.       va                   : List
  1706.  
  1707.  
  1708.  
  1709. -}
  1710.  
  1711. {-
  1712.  
  1713.    local variables for Funcion.Fu:
  1714.  
  1715.  
  1716.  
  1717. -}
  1718.  
  1719. data Funcion = Funcion_Fu (You are not allowed to view links. Register or Login) (Pr) (Tipo) (Cuerpo)
  1720.  
  1721. -- semantic domain
  1722.  
  1723. type T_Funcion = (You are not allowed to view links. Register or Login) ->
  1724.  
  1725.                  ((You are not allowed to view links. Register or Login),(Classs),(You are not allowed to view links. Register or Login),(Doble),(You are not allowed to view links. Register or Login),(List),(List),(You are not allowed to view links. Register or Login),(List),(List))
  1726.  
  1727. -- cata
  1728.  
  1729. sem_Funcion :: (Funcion) ->
  1730.  
  1731.                (T_Funcion)
  1732.  
  1733. sem_Funcion ((Funcion_Fu (_string) (_pr) (_tipo) (_cuerpo))) =
  1734.  
  1735.     (sem_Funcion_Fu (_string) ((sem_Pr (_pr))) ((sem_Tipo (_tipo))) ((sem_Cuerpo (_cuerpo))))
  1736.  
  1737. sem_Funcion_Fu :: (You are not allowed to view links. Register or Login) ->
  1738.  
  1739.                   (T_Pr) ->
  1740.  
  1741.                   (T_Tipo) ->
  1742.  
  1743.                   (T_Cuerpo) ->
  1744.  
  1745.                   (T_Funcion)
  1746.  
  1747. sem_Funcion_Fu (_string) (_pr) (_tipo) (_cuerpo) (_lhs_nomb) =
  1748.  
  1749.     let ( _pr_cod,_pr_jav,_pr_nom,_pr_pas,_pr_uso,_pr_va) =
  1750.  
  1751.             (_pr )
  1752.  
  1753.         ( _tipo_cod,_tipo_jav,_tipo_nom,_tipo_pas,_tipo_uso,_tipo_va) =
  1754.  
  1755.             (_tipo )
  1756.  
  1757.         ( _cuerpo_cod,_cuerpo_jav,_cuerpo_nom,_cuerpo_pas,_cuerpo_uso,_cuerpo_va) =
  1758.  
  1759.             (_cuerpo (_string))
  1760.  
  1761.     in  (_string,(_tipo_nom,_string):[],_tipo_cod ++ " " ++ _string ++"( "++ _pr_cod ++" )" ++ "\n" ++ _cuerpo_cod,repNfp _string (_pr_va ++ _cuerpo_va),"public " ++ _tipo_jav ++ " " ++ _string ++ "( " ++ _pr_jav ++ " )" ++ "\n" ++ _cuerpo_jav,_pr_nom ++ _cuerpo_nom,_string:[],"function "++ " " ++ _string ++ "( " ++ _pr_pas ++ " )" ++ ":" ++ _tipo_pas ++ ";" ++ "\n" ++ _cuerpo_pas,_cuerpo_uso,_string : [] ++ _pr_va ++ _cuerpo_va)
  1762.  
  1763. -- Ids ---------------------------------------------------------
  1764.  
  1765. {-
  1766.  
  1767.    inherited attributes:
  1768.  
  1769.  
  1770.  
  1771.    chained attributes:
  1772.  
  1773.  
  1774.  
  1775.    synthesised attributes:
  1776.  
  1777.       cod                  : String
  1778.  
  1779.       jav                  : String
  1780.  
  1781.       nom                  : List
  1782.  
  1783.       pas                  : String
  1784.  
  1785.       uso                  : List
  1786.  
  1787.       va                   : List
  1788.  
  1789.  
  1790.  
  1791. -}
  1792.  
  1793. {-
  1794.  
  1795.    local variables for Ids.Ids:
  1796.  
  1797.  
  1798.  
  1799. -}
  1800.  
  1801. {-
  1802.  
  1803.    local variables for Ids.Ids0:
  1804.  
  1805.  
  1806.  
  1807. -}
  1808.  
  1809. {-
  1810.  
  1811.    local variables for Ids.Ids1:
  1812.  
  1813.  
  1814.  
  1815. -}
  1816.  
  1817. {-
  1818.  
  1819.    local variables for Ids.Ids2:
  1820.  
  1821.  
  1822.  
  1823. -}
  1824.  
  1825. {-
  1826.  
  1827.    local variables for Ids.Ids3:
  1828.  
  1829.  
  1830.  
  1831. -}
  1832.  
  1833. {-
  1834.  
  1835.    local variables for Ids.Ids4:
  1836.  
  1837.  
  1838.  
  1839. -}
  1840.  
  1841. {-
  1842.  
  1843.    local variables for Ids.Ids5:
  1844.  
  1845.  
  1846.  
  1847. -}
  1848.  
  1849. data Ids = Ids_Ids (You are not allowed to view links. Register or Login) (Ids)
  1850.  
  1851.          | Ids_Ids0 (Ids)
  1852.  
  1853.          | Ids_Ids1 (You are not allowed to view links. Register or Login) (Ids)
  1854.  
  1855.          | Ids_Ids2 (Ids)
  1856.  
  1857.          | Ids_Ids3 (Ids)
  1858.  
  1859.          | Ids_Ids4 (Ids)
  1860.  
  1861.          | Ids_Ids5
  1862.  
  1863. -- semantic domain
  1864.  
  1865. type T_Ids = ((You are not allowed to view links. Register or Login),(You are not allowed to view links. Register or Login),(List),(You are not allowed to view links. Register or Login),(List),(List))
  1866.  
  1867. -- cata
  1868.  
  1869. sem_Ids :: (Ids) ->
  1870.  
  1871.            (T_Ids)
  1872.  
  1873. sem_Ids ((Ids_Ids (_string) (_ids))) =
  1874.  
  1875.     (sem_Ids_Ids (_string) ((sem_Ids (_ids))))
  1876.  
  1877. sem_Ids ((Ids_Ids0 (_ids))) =
  1878.  
  1879.     (sem_Ids_Ids0 ((sem_Ids (_ids))))
  1880.  
  1881. sem_Ids ((Ids_Ids1 (_int) (_ids))) =
  1882.  
  1883.     (sem_Ids_Ids1 (_int) ((sem_Ids (_ids))))
  1884.  
  1885. sem_Ids ((Ids_Ids2 (_ids))) =
  1886.  
  1887.     (sem_Ids_Ids2 ((sem_Ids (_ids))))
  1888.  
  1889. sem_Ids ((Ids_Ids3 (_ids))) =
  1890.  
  1891.     (sem_Ids_Ids3 ((sem_Ids (_ids))))
  1892.  
  1893. sem_Ids ((Ids_Ids4 (_ids))) =
  1894.  
  1895.     (sem_Ids_Ids4 ((sem_Ids (_ids))))
  1896.  
  1897. sem_Ids ((Ids_Ids5 )) =
  1898.  
  1899.     (sem_Ids_Ids5 )
  1900.  
  1901. sem_Ids_Ids :: (You are not allowed to view links. Register or Login) ->
  1902.  
  1903.                (T_Ids) ->
  1904.  
  1905.                (T_Ids)
  1906.  
  1907. sem_Ids_Ids (_string) (_ids) =
  1908.  
  1909.     let ( _ids_cod,_ids_jav,_ids_nom,_ids_pas,_ids_uso,_ids_va) =
  1910.  
  1911.             (_ids )
  1912.  
  1913.     in  (_string ++ " " ++ _ids_cod,_string ++ " " ++ _ids_jav,[],_string ++ " " ++ _ids_pas,_string:[] ++ _ids_uso,[])
  1914. sem_Ids_Ids0 :: (T_Ids) ->
  1915.                 (T_Ids)
  1916. sem_Ids_Ids0 (_ids) =
  1917.     let ( _ids_cod,_ids_jav,_ids_nom,_ids_pas,_ids_uso,_ids_va) =
  1918.             (_ids )
  1919.     in  ("\"" ++ _ids_cod ++ "\"\"%d" ++ "\"","\" " ++ _ids_jav ++ "\"",[],"' " ++ _ids_pas ++ " '",[],_ids_va)
  1920. sem_Ids_Ids1 :: (You are not allowed to view links. Register or Login) ->
  1921.                 (T_Ids) ->
  1922.  
« Última modificación: Abril 27, 2013, 01:13:48 pm por Expermicid »
You are not allowed to view links. Register or Login


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



 

¿Te gustó el post? COMPARTILO!



Jython: Mezclando Java y Python

Iniciado por Expermicid

Respuestas: 3
Vistas: 5375
Último mensaje Enero 17, 2018, 09:09:59 pm
por gugadev
GUI para Compilador Cramel

Iniciado por Riojas

Respuestas: 4
Vistas: 1475
Último mensaje Febrero 24, 2017, 11:25:58 pm
por xyz
[Pascal] Calculadora de numero primos.

Iniciado por chivo

Respuestas: 1
Vistas: 4056
Último mensaje Agosto 18, 2013, 01:27:13 am
por UpecBlack
[Pascal] Generador de clave.

Iniciado por chivo

Respuestas: 5
Vistas: 2909
Último mensaje Enero 13, 2014, 01:20:44 am
por chivo
[Descarga] Dev Pascal 1.9.2

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1971
Último mensaje Febrero 24, 2010, 03:50:39 pm
por ANTRAX