Ahora están resueltos los accesos a objetos....
[PL2.git] / pila2.mod
1 modulo pila2
2
3 importacion: elemento2
4
5 exportacion:
6 // Pila con 100 elementos como maximo
7 inst clase Pila
8 {
9    oculto Elemento el;
10    Elemento2 e2;
11    oculto entero cima;
12    entero x;
13    iniciar()
14    {
15       cima := 0;
16    }
17    estaLlena() dev logico
18    {
19                 // aa
20                 // bb
21       si (cima = 100.1) entonces          // ERROR Semántico
22             dev cierto;
23       sino
24             dev falso;
25       finsi
26       apilar(0, 0);
27    }
28    apilar(Elemento elem, entero i)
29    {
30       si (no estaLlena()) entonces
31             cima := cima + 1;
32             el := elem;
33       finsi
34       i := 1;                          // ERROR Semántico
35       e2.haceralgo();
36    }
37    estaVacia() dev logico
38     {
39         si (cima = 0) entonces
40                dev cierto;
41         sino
42                dev falso;
43         finsi
44     }
45     desapilar() dev Elemento
46     {
47         si (no estaVacia(1)) entonces             // ERROR Semántico
48                cima := cima - realaentero(1.0);
49                dev el;
50         sino
51                dev el;
52         finsi
53     }
54 }
55 clase Programa
56 {
57       inicio()
58       {
59          Elemento ed;
60          Pila p;
61          TipoErr k;                               // ERROR tipo no declarado
62          entero i;
63          p := crear(Pila);
64          escribir(Pila);
65          p.iniciar();
66          i := p.cima; 
67          i := Pila; //ERROR
68          i:=1;
69          mientras (i < 10) hacer
70              ed := crear(Pila);                    // ERROR Semántico
71              ed.modificar(i);
72              p.apilar(ed, i);
73              i:=i+1;
74          finmientras
75       }
76   }
77 implementacion: