.

5 dic. 2010

Analizador Lexico

Este es un ejemplo de analizador lexico en lisp indicando un contador de espacios en blanco, lineas,  los errores lexicos y el contador de palabras, cantidad de numeros de enteros positivos, negativos, decimales y decimales negativos.
 primero deben instalar GNU LISP 2.6.1
FUNCIONES (METODO)
El único método que se uso se llama contar: describe la secuencia de caracteres en una forma
descriptiva como el conteo
VARIABLES
cont 1: contador del ciclo DO
estado: Muestra en que estado se encuentra el carácter
contador: Cuenta errores
Contador_espacio : Cuenta espacios
contador_linea : Cuenta líneas
contador_palabra : Cuenta palabras
contador_numeropos: Cuenta todos los números enteros positivos
contador_numeroneg :Cuenta todos los números enteros negativos
contador_numerodec: Cuenta todos los números decimales positivos
contador_numerodecneg: Cuenta todos los números decimales negativos
auxiliar: Se utiliza para la comparación de cadenas concatenadas(palabras)
auxiliar_num_dec : Se utiliza para la comparación de cadenas concatenadas(números
decimales)
auxiliar_num : Se utiliza para la comparación de cadenas concatenadas(numeros)

El funcionamiento del programa es:



EXPLICACION DEL CODIGO FUENTE

La funcion se llama contar y se define con la estructura del lisp que es  DEFUN y recibe como parametro el path del  archivo
CODIGO FUENTE

01 (defun contar(arch)
02  ;; abrir el archivo
03  (setq fun(open arch  :direction :input))
04  ;; utilizo la iteracion do para el recorrido del archivo
05      (do((cont 1 (+ cont 1))(estado 0)(contador 0)(contador_espacio 0)(contador_linea 0)(contador_palabra 0)(contador_numeropos 0)(contador_numeroneg 0)(contador_numerodec 0)(contador_numerodecneg 0)(auxiliar "")(auxiliar_num_dec "")(auxiliar_num "")(auxiliar_num_dec_neg "")(auxiliar_num_neg "")) ((> cont (file-length fun)) 'hecho)
06 
07 
08                  ;;creo una lista llamada lista
09                  (dolist (lista (list (read-char fun)))
10                  ;;convierto la lista a string
11                  (setq cadena(string lista))
12 
13 
14                  ;;utilizo case para las condiciones anidadas
15                  (case estado
16                  ;;evalua los espacios en blanco, letras, numeros, salto de linea, etc.
17                  (0
18                  (if (or (equal cadena " ") (equal cadena (string (write-char #\Newline))) (equal cadena (string (write-char #\Tab))) (equal cadena (string (write-char #\Return))) (equal cadena (string (write-char #\Newline))) (equal cadena (string (write-char #\Tab))) (equal cadena (string (write-char #\Return)))(equal cadena "a")(equal cadena "A")(equal cadena "b")(equal cadena "B")(equal cadena "c")(equal cadena "C")(equal cadena "d")(equal cadena "D")(equal cadena "e")(equal cadena "E")(equal cadena "f")(equal cadena "F")(equal cadena "g")(equal cadena "G")(equal cadena "h")(equal cadena "H")(equal cadena "i")(equal cadena "I")(equal cadena "j")(equal cadena "J")(equal cadena "k")(equal cadena "K")(equal cadena "l")(equal cadena "L")(equal cadena "m")(equal cadena "M")(equal cadena "n")(equal cadena "N")(equal cadena "ñ")(equal cadena "Ñ")(equal cadena "o")(equal cadena "O")(equal cadena "p")(equal cadena "P")(equal cadena "q")(equal cadena "Q")(equal cadena "r")(equal cadena "R")(equal cadena "s")(equal cadena "S")(equal cadena "t")(equal cadena "T")(equal cadena "u")(equal cadena "U")(equal cadena "v")(equal cadena "V")(equal cadena "w")(equal cadena "W")(equal cadena "x")(equal cadena "X")(equal cadena "y")(equal cadena "Y")(equal cadena "z")(equal cadena "Z")(equal cadena "0")(equal cadena "1")(equal cadena "2")(equal cadena "3")(equal cadena "4")(equal cadena "5")(equal cadena "6")(equal cadena "7")(equal cadena "8")(equal cadena "9")(equal cadena "-"))
19                  (cond
20                  ((equal cadena " ")
21                  (incf contador_espacio)
22                  (setf estado 0)
23                  )
24                  ((equal cadena (string (write-char #\Newline)))
25                  (incf contador_linea)
26                  (setf estado 0)
27                  )
28                  ((equal cadena (string (write-char #\Tab)))
29                  (setf estado 0)
30                  )
31                  ((equal cadena (string (write-char #\Return)))
32 
33                  (setf estado 0)
34                  )
35                  ((equal cadena "a")
36 
37                  (setq union(concatenate 'string cadena auxiliar))
38          (setf auxiliar union)
39          (print auxiliar)
40          (print union)
41          (print cadena)
42          (setf estado 1)
43         )
44         ((equal cadena "A")
45          (setq union(concatenate 'string cadena auxiliar))
46                      (setf auxiliar union)
47                      (print cadena)
48                      (setf estado 1)
49                      )
50                      ((equal cadena "b")
51                      (setq union(concatenate 'string cadena auxiliar))
52          (setf auxiliar union)
53          (print cadena)
54          (setf estado 1)
55         )
56         ((equal cadena "B")
57          (setq union(concatenate 'string cadena auxiliar))
58                      (setf auxiliar union)
59                      (print cadena)
60                      (setf estado 1)
61                      )
62                      ((equal cadena "c")
63                      (setq union(concatenate 'string cadena auxiliar))
64          (setf auxiliar union)
65          (print cadena)
66          (setf estado 1)
67         )
68         ((equal cadena "C")
69          (setq union(concatenate 'string cadena auxiliar))
70                      (setf auxiliar union)
71                      (print cadena)
72                      (setf estado 1)
73                      )
74                      ((equal cadena "d")
75                      (setq union(concatenate 'string cadena auxiliar))
76          (setf auxiliar union)
77          (print cadena)
78          (setf estado 1)
79         )
80         ((equal cadena "D")
81          (setq union(concatenate 'string cadena auxiliar))
82                      (setf auxiliar union)
83                      (print cadena)
84                      (setf estado 1)
85                      )
86                      ((equal cadena "e")
87                      (setq union(concatenate 'string cadena auxiliar))
88          (setf auxiliar union)
89          (print cadena)
90          (setf estado 1)
91         )
92         ((equal cadena "E")
93          (setq union(concatenate 'string cadena auxiliar))
94                      (setf auxiliar union)
95                      (print cadena)
96                      (setf estado 1)
97                      )
98                      ((equal cadena "f")
99                      (setq union(concatenate 'string cadena auxiliar))
100          (setf auxiliar union)
101          (print cadena)
102          (setf estado 1)
103         )
104         ((equal cadena "F")
105          (setq union(concatenate 'string cadena auxiliar))
106                      (setf auxiliar union)
107                      (print cadena)
108                      (setf estado 1)
109                      )
110                      ((equal cadena "g")
111                      (setq union(concatenate 'string cadena auxiliar))
112          (setf auxiliar union)
113          (print cadena)
114          (setf estado 1)
115         )
116         ((equal cadena "G")
117          (setq union(concatenate 'string cadena auxiliar))
118                      (setf auxiliar union)
119                      (print cadena)
120                      (setf estado 1)
121                      )
122                      ((equal cadena "h")
123                      (setq union(concatenate 'string cadena auxiliar))
124          (setf auxiliar union)
125          (print cadena)
126          (setf estado 1)
127         )
128         ((equal cadena "H")
129          (setq union(concatenate 'string cadena auxiliar))
130                      (setf auxiliar union)
131                      (print cadena)
132                      (setf estado 1)
133                      )
134                      ((equal cadena "i")
135                      (setq union(concatenate 'string cadena auxiliar))
136          (setf auxiliar union)
137          (print cadena)
138          (setf estado 1)
139         )
140         ((equal cadena "I")
141          (setq union(concatenate 'string cadena auxiliar))
142                      (setf auxiliar union)
143                      (print cadena)
144                      (setf estado 1)
145                      )
146                      ((equal cadena "j")
147                      (setq union(concatenate 'string cadena auxiliar))
148          (setf auxiliar union)
149          (print cadena)
150          (setf estado 1)
151         )
152         ((equal cadena "J")
153          (setq union(concatenate 'string cadena auxiliar))
154                      (setf auxiliar union)
155                      (print cadena)
156                      (setf estado 1)
157                      )
158                      ((equal cadena "k")
159                      (setq union(concatenate 'string cadena auxiliar))
160          (setf auxiliar union)
161          (print cadena)
162          (setf estado 1)
163         )
164         ((equal cadena "K")
165          (setq union(concatenate 'string cadena auxiliar))
166                      (setf auxiliar union)
167                      (print cadena)
168                      (setf estado 1)
169                      )
170                      ((equal cadena "l")
171                      (setq union(concatenate 'string cadena auxiliar))
172          (setf auxiliar union)
173          (print cadena)
174          (setf estado 1)
175         )
176         ((equal cadena "L")
177          (setq union(concatenate 'string cadena auxiliar))
178                      (setf auxiliar union)
179                      (print cadena)
180                      (setf estado 1)
181                      )
182                      ((equal cadena "m")
183                      (setq union(concatenate 'string cadena auxiliar))
184          (setf auxiliar union)
185          (print cadena)
186          (setf estado 1)
187         )
188         ((equal cadena "M")
189          (setq union(concatenate 'string cadena auxiliar))
190                      (setf auxiliar union)
191                      (print cadena)
192                      (setf estado 1)
193                      )
194                      ((equal cadena "n")
195                      (setq union(concatenate 'string cadena auxiliar))
196          (setf auxiliar union)
197          (print cadena)
198          (setf estado 1)
199         )
200         ((equal cadena "N")
201          (setq union(concatenate 'string cadena auxiliar))
202                      (setf auxiliar union)
203                      (print cadena)
204                      (setf estado 1)
205                      )
206                      ((equal cadena "ñ")
207                      (setq union(concatenate 'string cadena auxiliar))
208          (setf auxiliar union)
209          (print cadena)
210          (setf estado 1)
211         )
212         ((equal cadena "Ñ")
213          (setq union(concatenate 'string cadena auxiliar))
214                      (setf auxiliar union)
215                      (print cadena)
216                      (setf estado 1)
217                      )
218                      ((equal cadena "o")
219                      (setq union(concatenate 'string cadena auxiliar))
220          (setf auxiliar union)
221          (print cadena)
222          (setf estado 1)
223         )
224         ((equal cadena "O")
225          (setq union(concatenate 'string cadena auxiliar))
226                      (setf auxiliar union)
227                      (print cadena)
228                      (setf estado 1)
229                      )
230                      ((equal cadena "p")
231                      (setq union(concatenate 'string cadena auxiliar))
232          (setf auxiliar union)
233          (print cadena)
234          (setf estado 1)
235         )
236         ((equal cadena "P")
237          (setq union(concatenate 'string cadena auxiliar))
238                      (setf auxiliar union)
239                      (print cadena)
240                      (setf estado 1)
241                      )
242                      ((equal cadena "q")
243                      (setq union(concatenate 'string cadena auxiliar))
244          (setf auxiliar union)
245          (print cadena)
246          (setf estado 1)
247         )
248         ((equal cadena "Q")
249          (setq union(concatenate 'string cadena auxiliar))
250                      (setf auxiliar union)
251                      (print cadena)
252                      (setf estado 1)
253                      )
254                      ((equal cadena "r")
255                      (setq union(concatenate 'string cadena auxiliar))
256          (setf auxiliar union)
257          (print cadena)
258          (setf estado 1)
259         )
260         ((equal cadena "R")
261          (setq union(concatenate 'string cadena auxiliar))
262                      (setf auxiliar union)
263                      (print cadena)
264                      (setf estado 1)
265                      )
266                      ((equal cadena "s")
267                      (setq union(concatenate 'string cadena auxiliar))
268          (setf auxiliar union)
269          (print cadena)
270          (setf estado 1)
271         )
272         ((equal cadena "S")
273          (setq union(concatenate 'string cadena auxiliar))
274                      (setf auxiliar union)
275                      (print cadena)
276                      (setf estado 1)
277                      )
278                      ((equal cadena "t")
279                      (setq union(concatenate 'string cadena auxiliar))
280          (setf auxiliar union)
281          (print cadena)
282          (setf estado 1)
283         )
284         ((equal cadena "T")
285          (setq union(concatenate 'string cadena auxiliar))
286                      (setf auxiliar union)
287                      (print cadena)
288                      (setf estado 1)
289                      )
290                      ((equal cadena "u")
291                      (setq union(concatenate 'string cadena auxiliar))
292          (setf auxiliar union)
293          (print cadena)
294          (setf estado 1)
295         )
296         ((equal cadena "U")
297          (setq union(concatenate 'string cadena auxiliar))
298                      (setf auxiliar union)
299                      (print cadena)
300                      (setf estado 1)
301                      )
302                      ((equal cadena "v")
303                      (setq union(concatenate 'string cadena auxiliar))
304          (setf auxiliar union)
305          (print cadena)
306          (setf estado 1)
307         )
308         ((equal cadena "V")
309          (setq union(concatenate 'string cadena auxiliar))
310                      (setf auxiliar union)
311                      (print cadena)
312                      (setf estado 1)
313                      )
314                      ((equal cadena "w")
315                      (setq union(concatenate 'string cadena auxiliar))
316          (setf auxiliar union)
317          (print cadena)
318          (setf estado 1)
319         )
320         ((equal cadena "W")
321          (setq union(concatenate 'string cadena auxiliar))
322                      (setf auxiliar union)
323                      (print cadena)
324                      (setf estado 1)
325                      )
326                      ((equal cadena "x")
327                      (setq union(concatenate 'string cadena auxiliar))
328          (setf auxiliar union)
329          (print cadena)
330          (setf estado 1)
331         )
332         ((equal cadena "X")
333          (setq union(concatenate 'string cadena auxiliar))
334                      (setf auxiliar union)
335                      (print cadena)
336                      (setf estado 1)
337                      )
338                      ((equal cadena "y")
339                      (setq union(concatenate 'string cadena auxiliar))
340          (setf auxiliar union)
341          (print cadena)
342          (setf estado 1)
343         )
344         ((equal cadena "Y")
345          (setq union(concatenate 'string cadena auxiliar))
346                      (setf auxiliar union)
347                      (print cadena)
348                      (setf estado 1)
349                      )
350                      ((equal cadena "z")
351                      (setq union(concatenate 'string cadena auxiliar))
352          (setf auxiliar union)
353          (print cadena)
354          (setf estado 1)
355         )
356         ((equal cadena "Z")
357          (setq union(concatenate 'string cadena auxiliar))
358                      (setf auxiliar union)
359                      (print cadena)
360                      (setf estado 1)
361                      )
362                      ((equal cadena "0")
363                      (setq union_num(concatenate 'string cadena auxiliar_num))
364          (setf auxiliar_num union_num)
365          (print cadena)
366          (setf estado 2)
367         )
368         ((equal cadena "1")
369          (setq union_num(concatenate 'string cadena auxiliar_num))
370                          (setf auxiliar_num union_num)
371                          (print cadena)
372                          (setf estado 2)
373                          )
374                          ((equal cadena "2")
375                          (setq union_num(concatenate 'string cadena auxiliar_num))
376          (setf auxiliar_num union_num)
377          (print cadena)
378          (setf estado 2)
379         )
380         ((equal cadena "3")
381          (setq union_num(concatenate 'string cadena auxiliar_num))
382                          (setf auxiliar_num union_num)
383                          (print cadena)
384                          (setf estado 2)
385                          )
386                          ((equal cadena "4")
387                          (setq union_num(concatenate 'string cadena auxiliar_num))
388          (setf auxiliar_num union_num)
389          (print cadena)
390          (setf estado 2)
391         )
392         ((equal cadena "5")
393          (setq union_num(concatenate 'string cadena auxiliar_num))
394                          (setf auxiliar_num union_num)
395                          (print cadena)
396                          (setf estado 2)
397                          )
398                          ((equal cadena "6")
399                          (setq union_num(concatenate 'string cadena auxiliar_num))
400          (setf auxiliar_num union_num)
401          (print cadena)
402          (setf estado 2)
403         )
404         ((equal cadena "7")
405          (setq union_num(concatenate 'string cadena auxiliar_num))
406                          (setf auxiliar_num union_num)
407                          (print cadena)
408                          (setf estado 2)
409                          )
410                          ((equal cadena "8")
411                          (setq union_num(concatenate 'string cadena auxiliar_num))
412          (setf auxiliar_num union_num)
413          (print cadena)
414          (setf estado 2)
415         )
416         ((equal cadena "9")
417          (setq union_num(concatenate 'string cadena auxiliar_num))
418                          (setf auxiliar_num union_num)
419                          (print cadena)
420                          (setf estado 2)
421                          )
422                          ((equal cadena "-")
423                          (setq union_num_neg(concatenate 'string cadena auxiliar_num_neg))
424          (setf auxiliar_num_neg union_num_neg)
425          (print cadena)
426          (setf estado 4)
427         )
428         )
429 
430         (setf estado 5)
431         )
432         )
433         ;; verificacion de letras
434         (1
435          (if (or (equal cadena " ") (equal cadena (string (write-char #\Newline))) (equal cadena (string (write-char #\Tab))) (equal cadena (string (write-char #\Return)))(equal cadena "a")(equal cadena "A")(equal cadena "b")(equal cadena "B")(equal cadena "c")(equal cadena "C")(equal cadena "d")(equal cadena "D")(equal cadena "e")(equal cadena "E")(equal cadena "f")(equal cadena "F")(equal cadena "g")(equal cadena "G")(equal cadena "h")(equal cadena "H")(equal cadena "i")(equal cadena "I")(equal cadena "j")(equal cadena "J")(equal cadena "k")(equal cadena "K")(equal cadena "l")(equal cadena "L")(equal cadena "m")(equal cadena "M")(equal cadena "n")(equal cadena "N")(equal cadena "ñ")(equal cadena "Ñ")(equal cadena "o")(equal cadena "O")(equal cadena "p")(equal cadena "P")(equal cadena "q")(equal cadena "Q")(equal cadena "r")(equal cadena "R")(equal cadena "s")(equal cadena "S")(equal cadena "t")(equal cadena "T")(equal cadena "u")(equal cadena "U")(equal cadena "v")(equal cadena "V")(equal cadena "w")(equal cadena "W")(equal cadena "x")(equal cadena "X")(equal cadena "y")(equal cadena "Y")(equal cadena "z")(equal cadena "Z"))
436               (cond
437                ((equal cadena " ")
438                 (if (equal union auxiliar)
439                  (cond ((equal union auxiliar)
440                         (incf contador_palabra)
441                         (print contador_palabra)
442                         (princ 'palabras)
443                          (setf union "")
444                          (setf auxiliar ""))
445                          )
446 
447 
448 
449                          )
450                          (incf contador_espacio)
451                          (setf estado 0)
452                          )
453                          ((equal cadena (string (write-char #\Newline)))
454                          (if(equal union auxiliar)
455                          (cond ((equal union auxiliar)
456                          (incf contador_palabra)
457                          (print contador_palabra)
458                          (princ 'palabras)
459                         (setf union "")
460                         (setf auxiliar ""))
461 
462                  )
463                 )
464                 (incf contador_linea)
465                 (setf estado 0)
466                )
467                    ((equal cadena (string (write-char #\Tab)))
468                     (if (equal union auxiliar)
469                      (cond ((equal union auxiliar)
470                             (incf contador_palabra)
471                             (print contador_palabra)
472                             (princ 'palabras)
473                              (setf union "")
474                              (setf auxiliar ""))
475 
476                              )
477                              )
478                              (setf estado 0)
479                              )
480                              ((equal cadena (string (write-char #\Return)))
481 
482                              (if(equal union auxiliar)
483                              (cond ((equal union auxiliar)
484                              (incf contador_palabra)
485                              (print contador_palabra)
486                              (princ 'palabras)
487                             (setf union "")
488                             (setf auxiliar ""))
489 
490                      )
491                     )
492                     (setf estado 0)
493                    )
494                        ((equal cadena "a")
495 
496                         (setq union(concatenate 'string cadena auxiliar))
497                                     (setf auxiliar union)
498                                     (print auxiliar)
499                                     (print union)
500                                     (print cadena)
501                                     (setf estado 1)
502                                     )
503                                     ((equal cadena "A")
504                                     (setq union(concatenate 'string cadena auxiliar))
505                         (setf auxiliar union)
506                         (print cadena)
507                         (setf estado 1)
508                        )
509                        ((equal cadena "b")
510                         (setq union(concatenate 'string cadena auxiliar))
511                                     (setf auxiliar union)
512                                     (print cadena)
513                                     (setf estado 1)
514                                     )
515                                     ((equal cadena "B")
516                                     (setq union(concatenate 'string cadena auxiliar))
517                         (setf auxiliar union)
518                         (print cadena)
519                         (setf estado 1)
520                        )
521                        ((equal cadena "c")
522                         (setq union(concatenate 'string cadena auxiliar))
523                                     (setf auxiliar union)
524                                     (print cadena)
525                                     (setf estado 1)
526                                     )
527                                     ((equal cadena "C")
528                                     (setq union(concatenate 'string cadena auxiliar))
529                         (setf auxiliar union)
530                         (print cadena)
531                         (setf estado 1)
532                        )
533                        ((equal cadena "d")
534                         (setq union(concatenate 'string cadena auxiliar))
535                                     (setf auxiliar union)
536                                     (print cadena)
537                                     (setf estado 1)
538                                     )
539                                     ((equal cadena "D")
540                                     (setq union(concatenate 'string cadena auxiliar))
541                         (setf auxiliar union)
542                         (print cadena)
543                         (setf estado 1)
544                        )
545                        ((equal cadena "e")
546                         (setq union(concatenate 'string cadena auxiliar))
547                                     (setf auxiliar union)
548                                     (print cadena)
549                                     (setf estado 1)
550                                     )
551                                     ((equal cadena "E")
552                                     (setq union(concatenate 'string cadena auxiliar))
553                         (setf auxiliar union)
554                         (print cadena)
555                         (setf estado 1)
556                        )
557                        ((equal cadena "f")
558                         (setq union(concatenate 'string cadena auxiliar))
559                                     (setf auxiliar union)
560                                     (print cadena)
561                                     (setf estado 1)
562                                     )
563                                     ((equal cadena "F")
564                                     (setq union(concatenate 'string cadena auxiliar))
565                         (setf auxiliar union)
566                         (print cadena)
567                         (setf estado 1)
568                        )
569                        ((equal cadena "g")
570                         (setq union(concatenate 'string cadena auxiliar))
571                                     (setf auxiliar union)
572                                     (print cadena)
573                                     (setf estado 1)
574                                     )
575                                     ((equal cadena "G")
576                                     (setq union(concatenate 'string cadena auxiliar))
577                         (setf auxiliar union)
578                         (print cadena)
579                         (setf estado 1)
580                        )
581                        ((equal cadena "h")
582                         (setq union(concatenate 'string cadena auxiliar))
583                                     (setf auxiliar union)
584                                     (print cadena)
585                                     (setf estado 1)
586                                     )
587                                     ((equal cadena "H")
588                                     (setq union(concatenate 'string cadena auxiliar))
589                         (setf auxiliar union)
590                         (print cadena)
591                         (setf estado 1)
592                        )
593                        ((equal cadena "i")
594                         (setq union(concatenate 'string cadena auxiliar))
595                                     (setf auxiliar union)
596                                     (print cadena)
597                                     (setf estado 1)
598                                     )
599                                     ((equal cadena "I")
600                                     (setq union(concatenate 'string cadena auxiliar))
601                         (setf auxiliar union)
602                         (print cadena)
603                         (setf estado 1)
604                        )
605                        ((equal cadena "j")
606                         (setq union(concatenate 'string cadena auxiliar))
607                                     (setf auxiliar union)
608                                     (print cadena)
609                                     (setf estado 1)
610                                     )
611                                     ((equal cadena "J")
612                                     (setq union(concatenate 'string cadena auxiliar))
613                         (setf auxiliar union)
614                         (print cadena)
615                         (setf estado 1)
616                        )
617                        ((equal cadena "k")
618                         (setq union(concatenate 'string cadena auxiliar))
619                                     (setf auxiliar union)
620                                     (print cadena)
621                                     (setf estado 1)
622                                     )
623                                     ((equal cadena "K")
624                                     (setq union(concatenate 'string cadena auxiliar))
625                         (setf auxiliar union)
626                         (print cadena)
627                         (setf estado 1)
628                        )
629                        ((equal cadena "l")
630                         (setq union(concatenate 'string cadena auxiliar))
631                                     (setf auxiliar union)
632                                     (print cadena)
633                                     (setf estado 1)
634                                     )
635                                     ((equal cadena "L")
636                                     (setq union(concatenate 'string cadena auxiliar))
637                         (setf auxiliar union)
638                         (print cadena)
639                         (setf estado 1)
640                        )
641                        ((equal cadena "m")
642                         (setq union(concatenate 'string cadena auxiliar))
643                                     (setf auxiliar union)
644                                     (print cadena)
645                                     (setf estado 1)
646                                     )
647                                     ((equal cadena "M")
648                                     (setq union(concatenate 'string cadena auxiliar))
649                         (setf auxiliar union)
650                         (print cadena)
651                         (setf estado 1)
652                        )
653                        ((equal cadena "n")
654                         (setq union(concatenate 'string cadena auxiliar))
655                                     (setf auxiliar union)
656                                     (print cadena)
657                                     (setf estado 1)
658                                     )
659                                     ((equal cadena "N")
660                                     (setq union(concatenate 'string cadena auxiliar))
661                         (setf auxiliar union)
662                         (print cadena)
663                         (setf estado 1)
664                        )
665                        ((equal cadena "ñ")
666                         (setq union(concatenate 'string cadena auxiliar))
667                                     (setf auxiliar union)
668                                     (print cadena)
669                                     (setf estado 1)
670                                     )
671                                     ((equal cadena "Ñ")
672                                     (setq union(concatenate 'string cadena auxiliar))
673                         (setf auxiliar union)
674                         (print cadena)
675                         (setf estado 1)
676                        )
677                        ((equal cadena "o")
678                         (setq union(concatenate 'string cadena auxiliar))
679                                     (setf auxiliar union)
680                                     (print cadena)
681                                     (setf estado 1)
682                                     )
683                                     ((equal cadena "O")
684                                     (setq union(concatenate 'string cadena auxiliar))
685                         (setf auxiliar union)
686                         (print cadena)
687                         (setf estado 1)
688                        )
689                        ((equal cadena "p")
690                         (setq union(concatenate 'string cadena auxiliar))
691                                     (setf auxiliar union)
692                                     (print cadena)
693                                     (setf estado 1)
694                                     )
695                                     ((equal cadena "P")
696                                     (setq union(concatenate 'string cadena auxiliar))
697                         (setf auxiliar union)
698                         (print cadena)
699                         (setf estado 1)
700                        )
701                        ((equal cadena "q")
702                         (setq union(concatenate 'string cadena auxiliar))
703                                     (setf auxiliar union)
704                                     (print cadena)
705                                     (setf estado 1)
706                                     )
707                                     ((equal cadena "Q")
708                                     (setq union(concatenate 'string cadena auxiliar))
709                         (setf auxiliar union)
710                         (print cadena)
711                         (setf estado 1)
712                        )
713                        ((equal cadena "r")
714                         (setq union(concatenate 'string cadena auxiliar))
715                                     (setf auxiliar union)
716                                     (print cadena)
717                                     (setf estado 1)
718                                     )
719                                     ((equal cadena "R")
720                                     (setq union(concatenate 'string cadena auxiliar))
721                         (setf auxiliar union)
722                         (print cadena)
723                         (setf estado 1)
724                        )
725                        ((equal cadena "s")
726                         (setq union(concatenate 'string cadena auxiliar))
727                                     (setf auxiliar union)
728                                     (print cadena)
729                                     (setf estado 1)
730                                     )
731                                     ((equal cadena "S")
732                                     (setq union(concatenate 'string cadena auxiliar))
733                         (setf auxiliar union)
734                         (print cadena)
735                         (setf estado 1)
736                        )
737                        ((equal cadena "t")
738                         (setq union(concatenate 'string cadena auxiliar))
739                                     (setf auxiliar union)
740                                     (print cadena)
741                                     (setf estado 1)
742                                     )
743                                     ((equal cadena "T")
744                                     (setq union(concatenate 'string cadena auxiliar))
745                         (setf auxiliar union)
746                         (print cadena)
747                         (setf estado 1)
748                        )
749                        ((equal cadena "u")
750                         (setq union(concatenate 'string cadena auxiliar))
751                                     (setf auxiliar union)
752                                     (print cadena)
753                                     (setf estado 1)
754                                     )
755                                     ((equal cadena "U")
756                                     (setq union(concatenate 'string cadena auxiliar))
757                         (setf auxiliar union)
758                         (print cadena)
759                         (setf estado 1)
760                        )
761                        ((equal cadena "v")
762                         (setq union(concatenate 'string cadena auxiliar))
763                                     (setf auxiliar union)
764                                     (print cadena)
765                                     (setf estado 1)
766                                     )
767                                     ((equal cadena "V")
768                                     (setq union(concatenate 'string cadena auxiliar))
769                         (setf auxiliar union)
770                         (print cadena)
771                         (setf estado 1)
772                        )
773                        ((equal cadena "w")
774                         (setq union(concatenate 'string cadena auxiliar))
775                                     (setf auxiliar union)
776                                     (print cadena)
777                                     (setf estado 1)
778                                     )
779                                     ((equal cadena "W")
780                                     (setq union(concatenate 'string cadena auxiliar))
781                         (setf auxiliar union)
782                         (print cadena)
783                         (setf estado 1)
784                        )
785                        ((equal cadena "x")
786                         (setq union(concatenate 'string cadena auxiliar))
787                                     (setf auxiliar union)
788                                     (print cadena)
789                                     (setf estado 1)
790                                     )
791                                     ((equal cadena "X")
792                                     (setq union(concatenate 'string cadena auxiliar))
793                         (setf auxiliar union)
794                         (print cadena)
795                         (setf estado 1)
796                        )
797                        ((equal cadena "y")
798                         (setq union(concatenate 'string cadena auxiliar))
799                                     (setf auxiliar union)
800                                     (print cadena)
801                                     (setf estado 1)
802                                     )
803                                     ((equal cadena "Y")
804                                     (setq union(concatenate 'string cadena auxiliar))
805                         (setf auxiliar union)
806                         (print cadena)
807                         (setf estado 1)
808                        )
809                        ((equal cadena "z")
810                         (setq union(concatenate 'string cadena auxiliar))
811                                     (setf auxiliar union)
812                                     (print cadena)
813                                     (setf estado 1)
814                                     )
815                                     ((equal cadena "Z")
816                                     (setq union(concatenate 'string cadena auxiliar))
817                         (setf auxiliar union)
818                         (print cadena)
819                         (setf estado 1)
820                        )
821 
822 
823                       )
824                       (setf estado 5)
825                      )
826                     )
827                     (2
828                      (if (or (equal cadena " ") (equal cadena (string (write-char #\Newline))) (equal cadena (string (write-char #\Tab))) (equal cadena (string (write-char #\Return)))(equal cadena "0")(equal cadena "1")(equal cadena "2")(equal cadena "3")(equal cadena "4")(equal cadena "5")(equal cadena "6")(equal cadena "7")(equal cadena "8")(equal cadena "9")(equal cadena "."))
829                           (cond
830                            ((equal cadena " ")
831                             (if (equal union_num auxiliar_num)
832                              (cond ((equal union_num auxiliar_num)
833                                     (incf contador_numeropos)
834                                     (print contador_numeropos)
835                                     (princ '(Numeros positivos))
836                                      (setf union_num "")
837                                      (setf auxiliar_num ""))
838                                      )
839 
840                                      )
841                                      (incf contador_espacio)
842                                      (setf estado 0)
843                                      )
844 
845                                      ((equal cadena (string (write-char #\Newline)))
846                                      (if(equal union_num auxiliar_num)
847                                      (cond ((equal union_num auxiliar_num)
848                                      (incf contador_numeropos)
849                                      (print contador_numeropos)
850                                      (princ '(Numeros positivos))
851                                     (setf union_num "")
852                                     (setf auxiliar_num ""))
853                              )
854 
855 
856 
857                             )
858                             (incf contador_linea)
859                             (setf estado 0)
860                            )
861                                ((equal cadena (string (write-char #\Tab)))
862                                 (if (equal union_num auxiliar_num)
863                                  (cond ((equal union_num auxiliar_num)
864                                         (incf contador_numeropos)
865                                         (print contador_numeropos)
866                                         (princ '(Numeros positivos))
867                                          (setf union_num "")
868                                          (setf auxiliar_num ""))
869                                          )
870 
871 
872 
873                                          )
874                                          (setf estado 0)
875                                          )
876                                          ((equal cadena (string (write-char #\Return)))
877 
878                                          (if(equal union_num auxiliar_num)
879                                          (cond ((equal union_num auxiliar_num)
880                                          (incf contador_numeropos)
881                                          (print contador_numeropos)
882                                          (princ '(Numeros positivos))
883                                         (setf union_num "")
884                                         (setf auxiliar_num ""))
885                                  )
886 
887 
888 
889                                 )
890                                 (setf estado 0)
891                                )
892                                    ((equal cadena "0")
893                                     (setq union_num(concatenate 'string cadena auxiliar_num))
894                                                     (setf auxiliar_num union_num)
895                                                     (print cadena)
896                                                     (setf estado 2)
897                                                     )
898                                                     ((equal cadena "1")
899                                                     (setq union_num(concatenate 'string cadena auxiliar_num))
900                                     (setf auxiliar_num union_num)
901                                     (print cadena)
902                                     (setf estado 2)
903                                    )
904                                    ((equal cadena "2")
905                                     (setq union_num(concatenate 'string cadena auxiliar_num))
906                                                     (setf auxiliar_num union_num)
907                                                     (print auxiliar_num)
908                                                     (print cadena)
909                                                     (setf estado 2)
910                                                     )
911                                                     ((equal cadena "3")
912                                                     (setq union_num(concatenate 'string cadena auxiliar_num))
913                                     (setf auxiliar_num union_num)
914                                     (print auxiliar_num)
915                                     (print cadena)
916                                     (setf estado 2)
917                                    )
918                                    ((equal cadena "4")
919                                     (setq union_num(concatenate 'string cadena auxiliar_num))
920                                                     (setf auxiliar_num union_num)
921                                                     (print cadena)
922                                                     (setf estado 2)
923                                                     )
924                                                     ((equal cadena "5")
925                                                     (setq union_num(concatenate 'string cadena auxiliar_num))
926                                     (setf auxiliar_num union_num)
927                                     (print cadena)
928                                     (setf estado 2)
929                                    )
930                                    ((equal cadena "6")
931                                     (setq union_num(concatenate 'string cadena auxiliar_num))
932                                                     (setf auxiliar_num union_num)
933                                                     (print cadena)
934                                                     (setf estado 2)
935                                                     )
936                                                     ((equal cadena "7")
937                                                     (setq union_num(concatenate 'string cadena auxiliar_num))
938                                     (setf auxiliar_num union_num)
939                                     (print cadena)
940                                     (setf estado 2)
941                                    )
942                                    ((equal cadena "8")
943                                     (setq union_num(concatenate 'string cadena auxiliar_num))
944                                                     (setf auxiliar_num union_num)
945                                                     (print cadena)
946                                                     (setf estado 2)
947                                                     )
948                                                     ((equal cadena "9")
949                                                     (setq union_num(concatenate 'string cadena auxiliar_num))
950                                     (setf auxiliar_num union_num)
951                                     (print cadena)
952                                     (setf estado 2)
953                                    )
954 
955                                    ((equal cadena ".")
956                                     (print cadena)
957                                     (setf estado 3)
958                                    )
959 
960                                   )
961                                   (setf estado 5)
962                                  )
963                                 )
964                                 (3
965                                  (if (or (equal cadena "0")(equal cadena "1")(equal cadena "2")(equal cadena "3")(equal cadena "4")(equal cadena "5")(equal cadena "6")(equal cadena "7")(equal cadena "8")(equal cadena "9"))
966                                       (cond
967                                        ((equal cadena "0")
968                                         (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
969                                                             (setf auxiliar_num_dec union_num_dec)
970                                                             (print cadena)
971                                                             (setf estado 6)
972                                                             )
973                                                             ((equal cadena "1")
974                                                             (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
975                                         (setf auxiliar_num_dec union_num_dec)
976                                         (print cadena)
977                                         (setf estado 6)
978                                        )
979                                        ((equal cadena "2")
980                                         (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
981                                                             (setf auxiliar_num_dec union_num_dec)
982                                                             (print cadena)
983                                                             (setf estado 6)
984                                                             )
985                                                             ((equal cadena "3")
986                                                             (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
987                                         (setf auxiliar_num_dec union_num_dec)
988                                         (print cadena)
989                                         (setf estado 6)
990                                        )
991                                        ((equal cadena "4")
992                                         (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
993                                                             (setf auxiliar_num_dec union_num_dec)
994                                                             (print cadena)
995                                                             (setf estado 6)
996                                                             )
997                                                             ((equal cadena "5")
998                                                             (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
999                                         (setf auxiliar_num_dec union_num_dec)
1000                                         (print cadena)
1001                                         (setf estado 6)
1002                                        )
1003                                        ((equal cadena "6")
1004                                         (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1005                                                             (setf auxiliar_num_dec union_num_dec)
1006                                                             (print cadena)
1007                                                             (setf estado 6)
1008                                                             )
1009                                                             ((equal cadena "7")
1010                                                             (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1011                                         (setf auxiliar_num_dec union_num_dec)
1012                                         (print cadena)
1013                                         (setf estado 6)
1014                                        )
1015                                        ((equal cadena "8")
1016                                         (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1017                                                             (setf auxiliar_num_dec union_num_dec)
1018                                                             (print cadena)
1019                                                             (setf estado 6)
1020                                                             )
1021                                                             ((equal cadena "9")
1022                                                             (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1023                                         (setf auxiliar_num_dec union_num_dec)
1024                                         (print cadena)
1025                                         (setf estado 6)
1026                                        )
1027                                       )
1028                                       (setf estado 5)
1029                                      )
1030                                     )
1031                                     (4
1032 
1033                                      (if (or (equal cadena " ")(equal cadena ".")(equal cadena "0")(equal cadena "1")(equal cadena "2")(equal cadena "3")(equal cadena "4")(equal cadena "5")(equal cadena "6")(equal cadena "7")(equal cadena "8")(equal cadena "9"))
1034                                           (cond
1035                                            ((equal cadena " ")
1036                                             (if (equal union_num_neg auxiliar_num_neg)
1037                                              (cond ((equal union_num_neg auxiliar_num_neg)
1038                                                     (incf contador_numeroneg)
1039                                                     (print contador_numeroneg)
1040                                                     (princ '(Numeros Negativos))
1041                                                      (setf union_num_neg "")
1042                                                      (setf auxiliar_num_neg ""))
1043                                                      )
1044 
1045 
1046 
1047                                                      )
1048                                                      (incf contador_espacio)
1049                                                      (setf estado 0)
1050                                                      )
1051                                                      ((equal cadena (string (write-char #\Newline)))
1052                                                      (if(equal union_num_neg auxiliar_num_neg)
1053                                                      (cond ((equal union_num_neg auxiliar_num_neg)
1054                                                      (incf contador_numeroneg)
1055                                                      (print contador_numeroneg)
1056                                                      (princ '(Numeros Negativos))
1057                                                     (setf union_num_neg "")
1058                                                     (setf auxiliar_num_neg ""))
1059                                              )
1060 
1061 
1062 
1063                                             )
1064 
1065                                             (incf contador_linea)
1066                                             (setf estado 0)
1067                                            )
1068                                                ((equal cadena (string (write-char #\Tab)))
1069                                                 (if (equal union_num_neg auxiliar_num_neg)
1070                                                  (cond ((equal union_num_neg auxiliar_num_neg)
1071                                                         (incf contador_numeroneg)
1072                                                         (print contador_numeroneg)
1073                                                         (princ '(Numeros Negativos))
1074                                                          (setf union_num_neg "")
1075                                                          (setf auxiliar_num_neg ""))
1076                                                          )
1077 
1078 
1079 
1080                                                          )
1081 
1082                                                          (setf estado 0)
1083                                                          )
1084                                                          ((equal cadena (string (write-char #\Return)))
1085 
1086                                                          (if(equal union_num_neg auxiliar_num_neg)
1087                                                          (cond ((equal union_num_neg auxiliar_num_neg)
1088                                                          (incf contador_numeroneg)
1089                                                          (print contador_numeroneg)
1090                                                          (princ '(Numeros Negativos))
1091                                                         (setf union_num_neg "")
1092                                                         (setf auxiliar_num_neg ""))
1093                                                  )
1094 
1095 
1096 
1097                                                 )
1098 
1099                                                 (setf estado 0)
1100                                                )
1101 
1102                                                    ((equal cadena "0")
1103                                                     (setq union_num_neg(concatenate 'string cadena auxiliar_num_neg))
1104                                                                         (setf auxiliar_num_neg union_num_neg)
1105                                                                         (print cadena)
1106                                                                         (setf estado 4)
1107                                                                         )
1108                                                                         ((equal cadena "1")
1109                                                                         (setq union_num_neg(concatenate 'string cadena auxiliar_num_neg))
1110                                                     (setf auxiliar_num_neg union_num_neg)
1111                                                     (print cadena)
1112                                                     (setf estado 4)
1113                                                    )
1114                                                    ((equal cadena "2")
1115                                                     (setq union_num_neg(concatenate 'string cadena auxiliar_num_neg))
1116                                                                         (setf auxiliar_num_neg union_num_neg)
1117                                                                         (print cadena)
1118                                                                         (setf estado 4)
1119                                                                         )
1120                                                                         ((equal cadena "3")
1121                                                                         (setq union_num_neg(concatenate 'string cadena auxiliar_num_neg))
1122                                                     (setf auxiliar_num_neg union_num_neg)
1123                                                     (print cadena)
1124                                                     (setf estado 4)
1125                                                    )
1126                                                    ((equal cadena "4")
1127                                                     (setq union_num_neg(concatenate 'string cadena auxiliar_num_neg))
1128                                                                         (setf auxiliar_num_neg union_num_neg)
1129                                                                         (print cadena)
1130                                                                         (setf estado 4)
1131                                                                         )
1132                                                                         ((equal cadena "5")
1133                                                                         (setq union_num_neg(concatenate 'string cadena auxiliar_num_neg))
1134                                                     (setf auxiliar_num_neg union_num_neg)
1135                                                     (print cadena)
1136                                                     (setf estado 4)
1137                                                    )
1138                                                    ((equal cadena "6")
1139                                                     (setq union_num_neg(concatenate 'string cadena auxiliar_num_neg))
1140                                                                         (setf auxiliar_num_neg union_num_neg)
1141                                                                         (print cadena)
1142                                                                         (setf estado 4)
1143                                                                         )
1144                                                                         ((equal cadena "7")
1145                                                                         (setq union_num_neg(concatenate 'string cadena auxiliar_num_neg))
1146                                                     (setf auxiliar_num_neg union_num_neg)
1147                                                     (print cadena)
1148                                                     (setf estado 4)
1149                                                    )
1150                                                    ((equal cadena "8")
1151                                                     (setq union_num_neg(concatenate 'string cadena auxiliar_num_neg))
1152                                                                         (setf auxiliar_num_neg union_num_neg)
1153                                                                         (print cadena)
1154                                                                         (setf estado 4)
1155                                                                         )
1156                                                                         ((equal cadena "9")
1157                                                                         (setq union_num_neg(concatenate 'string cadena auxiliar_num_neg))
1158                                                     (setf auxiliar_num_neg union_num_neg)
1159                                                     (print cadena)
1160                                                     (setf estado 4)
1161                                                    )
1162                                                    ((equal cadena ".")
1163                                                     (setf estado 7)
1164 
1165                                                    )
1166                                                   )
1167                                                   (setf estado 5)
1168                                                  )
1169                                                 )
1170                                                 (5
1171                                                  (print 'error)
1172                                                   (setf union "")
1173                                                   (setf auxiliar "")
1174                                                   (setf union_num "")
1175                                                   (setf auxiliar_num "")
1176                                                   (setf union_num_dec "")
1177                                                   (setf auxiliar_dec "")
1178                                                   (setf union_num_dec_neg "")
1179                                                   (setf auxiliar_dec_neg "")
1180                                                   (setf union_num_neg "")
1181                                                   (setf auxiliar_num_neg "")
1182                                                   (if (or (equal cadena " ") (equal cadena (string (write-char #\Newline))) (equal cadena (string (write-char #\Tab))) (equal cadena (string (write-char #\Return))))
1183                                                   (cond
1184                                                   ((equal cadena " ")
1185                                                   (incf contador_espacio)
1186                                                   (incf contador)
1187                                                   (print  contador)
1188                                                   (setf estado 0)
1189                                                   )
1190                                                   ((equal cadena (string (write-char #\Newline)))
1191                                                   (incf contador_linea)
1192                                                   (incf contador)
1193                                                   (setf estado 0)
1194                                                   )
1195                                                   ((equal cadena (string (write-char #\Tab)))
1196                                                   (incf contador)
1197                                                   (setf estado 0)
1198                                                   )
1199                                                   ((equal cadena (string (write-char #\Return)))
1200                                                   (incf contador)
1201                                                   (setf estado 0)
1202                                                   )
1203                                                   ((equal cadena eof)
1204                                                   (incf contador)
1205                                                   (setf estado 0)
1206                                                   )
1207                                                   (setf estado 5)
1208                                                   )
1209                                                   )
1210                                                   )
1211                                                   (6
1212                                                   (if (or (equal cadena " ") (equal cadena (string (write-char #\Newline))) (equal cadena (string (write-char #\Tab))) (equal cadena (string (write-char #\Return)))(equal cadena "0")(equal cadena "1")(equal cadena "2")(equal cadena "3")(equal cadena "4")(equal cadena "5")(equal cadena "6")(equal cadena "7")(equal cadena "8")(equal cadena "9"))
1213                                                   (cond
1214                                                   ((equal cadena " ")
1215                                                   (if(equal union_num_dec auxiliar_num_dec)
1216                                                   (cond ((equal union_num_dec auxiliar_num_dec)
1217                                                   (incf contador_numerodec)
1218                                                   (print contador_numerodec)
1219                                                   (princ '(numeros decimales positivos))
1220                                                  (setf union_num_dec "")
1221                                                  (setf auxiliar_num_dec ""))
1222                                                 )
1223 
1224 
1225 
1226                                                 )
1227                                                 (incf contador_espacio)
1228                                                 (setf estado 0)
1229                                                 )
1230                                                 ((equal cadena (string (write-char #\Newline)))
1231                                                  (if (equal union_num_dec auxiliar_num_dec)
1232                                                   (cond ((equal union_num_dec auxiliar_num_dec)
1233                                                          (incf contador_numerodec)
1234                                                          (print contador_numerodec)
1235                                                          (princ '(numeros decimales positivos))
1236                                                           (setf union_num_dec "")
1237                                                           (setf auxiliar_num_dec ""))
1238                                                           )
1239 
1240 
1241 
1242                                                           )
1243 
1244                                                           (incf contador_linea)
1245                                                           (setf estado 0)
1246                                                           )
1247                                                           ((equal cadena (string (write-char #\Tab)))
1248                                                           (if(equal union_num_dec auxiliar_num_dec)
1249                                                           (cond ((equal union_num_dec auxiliar_num_dec)
1250                                                           (incf contador_numerodec)
1251                                                           (print contador_numerodec)
1252                                                           (princ '(numeros decimales positivos))
1253                                                          (setf union_num_dec "")
1254                                                          (setf auxiliar_num_dec ""))
1255                                                   )
1256 
1257 
1258 
1259                                                  )
1260 
1261                                                  (setf estado 0)
1262                                                 )
1263                                                 ((equal cadena (string (write-char #\Return)))
1264 
1265                                                  (if (equal union_num_dec auxiliar_num_dec)
1266                                                       (cond ((equal union_num_dec auxiliar_num_dec)
1267                                                              (incf contador_numerodec)
1268                                                              (print contador_numerodec)
1269                                                              (princ '(numeros decimales positivos))
1270                                                               (setf union_num_dec "")
1271                                                               (setf auxiliar_num_dec ""))
1272                                                               )
1273 
1274 
1275 
1276                                                               )
1277 
1278                                                               (setf estado 0)
1279                                                               )
1280                                                               ((equal cadena "0")
1281                                                               (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1282                                                        (setf auxiliar_num_dec union_num_dec)
1283                                                        (print cadena)
1284                                                        (setf estado 6)
1285                                                       )
1286                                                       ((equal cadena "1")
1287                                                        (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1288                                                                            (setf auxiliar_num_dec union_num_dec)
1289                                                                            (print cadena)
1290                                                                            (setf estado 6)
1291                                                                            )
1292                                                                            ((equal cadena "2")
1293                                                                            (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1294                                                        (setf auxiliar_num_dec union_num_dec)
1295                                                        (print cadena)
1296                                                        (setf estado 6)
1297                                                       )
1298                                                       ((equal cadena "3")
1299                                                        (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1300                                                                            (setf auxiliar_num_dec union_num_dec)
1301                                                                            (print cadena)
1302                                                                            (setf estado 6)
1303                                                                            )
1304                                                                            ((equal cadena "4")
1305                                                                            (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1306                                                        (setf auxiliar_num_dec union_num_dec)
1307                                                        (print cadena)
1308                                                        (setf estado 6)
1309                                                       )
1310                                                       ((equal cadena "5")
1311                                                        (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1312                                                                            (setf auxiliar_num_dec union_num_dec)
1313                                                                            (print cadena)
1314                                                                            (setf estado 6)
1315                                                                            )
1316                                                                            ((equal cadena "6")
1317                                                                            (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1318                                                        (setf auxiliar_num_dec union_num_dec)
1319                                                        (print cadena)
1320                                                        (setf estado 6)
1321                                                       )
1322                                                       ((equal cadena "7")
1323                                                        (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1324                                                                            (setf auxiliar_num_dec union_num_dec)
1325                                                                            (print cadena)
1326                                                                            (setf estado 6)
1327                                                                            )
1328                                                                            ((equal cadena "8")
1329                                                                            (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1330                                                        (setf auxiliar_num_dec union_num_dec)
1331                                                        (print cadena)
1332                                                        (setf estado 6)
1333                                                       )
1334                                                       ((equal cadena "9")
1335                                                        (setq union_num_dec(concatenate 'string cadena auxiliar_num_dec))
1336                                                                            (setf auxiliar_num_dec union_num_dec)
1337                                                                            (print cadena)
1338                                                                            (setf estado 6)
1339                                                                            )
1340                                                                            )
1341                                                                            (setf estado 5)
1342                                                                            )
1343                                                                            )
1344                                                                            (7
1345                                                                            (if (or (equal cadena " ") (equal cadena (string (write-char #\Newline))) (equal cadena (string (write-char #\Tab))) (equal cadena (string (write-char #\Return)))(equal cadena "0")(equal cadena "1")(equal cadena "2")(equal cadena "3")(equal cadena "4")(equal cadena "5")(equal cadena "6")(equal cadena "7")(equal cadena "8")(equal cadena "9"))
1346                                                                            (cond
1347                                                                            ((equal cadena " ")
1348                                                                            (if(equal union_num_dec_neg auxiliar_num_dec_neg)
1349                                                                            (cond ((equal union_num_dec_neg auxiliar_num_dec_neg)
1350                                                                            (incf contador_numerodecneg)
1351                                                                            (print contador_numerodecneg)
1352                                                                            (princ '(numeros decimales negativos))
1353                                                         (setf union_num_dec_neg "")
1354                                                         (setf auxiliar_num_dec_neg ""))
1355                                                       )
1356 
1357 
1358 
1359                                                      )
1360                                                      (incf contador_espacio)
1361                                                      (setf estado 0)
1362                                                     )
1363                                                     ((equal cadena (string (write-char #\Newline)))
1364                                                      (if (equal union_num_dec_neg auxiliar_num_dec_neg)
1365                                                           (cond ((equal union_num_dec_neg auxiliar_num_dec_neg)
1366                                                                  (incf contador_numerodecneg)
1367                                                                  (print contador_numerodecneg)
1368                                                                  (princ '(numeros decimales negativos))
1369                                                                   (setf union_num_dec_neg "")
1370                                                                   (setf auxiliar_num_dec_neg ""))
1371                                                                   )
1372 
1373 
1374 
1375                                                                   )
1376 
1377                                                                   (incf contador_linea)
1378                                                                   (setf estado 0)
1379                                                                   )
1380                                                                   ((equal cadena (string (write-char #\Tab)))
1381                                                                   (if(equal union_num_dec_neg auxiliar_num_dec_neg)
1382                                                                   (cond ((equal union_num_dec_neg auxiliar_num_dec_neg)
1383                                                                   (incf contador_numerodecneg)
1384                                                                   (print contador_numerodecneg)
1385                                                                   (princ '(numeros decimales negativo))
1386                                                                  (setf union_num_dec_neg "")
1387                                                                  (setf auxiliar_num_dec_neg ""))
1388                                                           )
1389 
1390 
1391 
1392                                                          )
1393 
1394                                                          (setf estado 0)
1395                                                         )
1396                                                         ((equal cadena (string (write-char #\Return)))
1397 
1398                                                          (if (equal union_num_dec_neg auxiliar_num_dec_neg)
1399                                                               (cond ((equal union_num_dec_neg auxiliar_num_dec_neg)
1400                                                                      (incf contador_numerodecneg)
1401                                                                      (print contador_numerodecneg)
1402                                                                      (princ '(numeros decimales negativos))
1403                                                                       (setf union_num_dec_neg "")
1404                                                                       (setf auxiliar_num_dec_neg ""))
1405                                                                       )
1406 
1407 
1408 
1409                                                                       )
1410 
1411                                                                       (setf estado 0)
1412                                                                       )
1413                                                                       ((equal cadena "0")
1414                                                                       (setq union_num_dec_neg(concatenate 'string cadena auxiliar_num_dec_neg))
1415                                                                (setf auxiliar_num_dec_neg union_num_dec_neg)
1416                                                                (print cadena)
1417                                                                (setf estado 7)
1418                                                               )
1419                                                               ((equal cadena "1")
1420                                                                (setq union_num_dec_neg(concatenate 'string cadena auxiliar_num_dec_neg))
1421                                                                                        (setf auxiliar_num_dec_neg union_num_dec_neg)
1422                                                                                        (print cadena)
1423                                                                                        (setf estado 7)
1424                                                                                        )
1425                                                                                        ((equal cadena "2")
1426                                                                                        (setq union_num_dec_neg(concatenate 'string cadena auxiliar_num_dec_neg))
1427                                                                (setf auxiliar_num_dec_neg union_num_dec_neg)
1428                                                                (print cadena)
1429                                                                (setf estado 7)
1430                                                               )
1431                                                               ((equal cadena "3")
1432                                                                (setq union_num_dec_neg(concatenate 'string cadena auxiliar_num_dec_neg))
1433                                                                                        (setf auxiliar_num_dec_neg union_num_dec_neg)
1434                                                                                        (print cadena)
1435                                                                                        (setf estado 7)
1436                                                                                        )
1437                                                                                        ((equal cadena "4")
1438                                                                                        (setq union_num_dec_neg(concatenate 'string cadena auxiliar_num_dec_neg))
1439                                                                (setf auxiliar_num_dec_neg union_num_dec_neg)
1440                                                                (print cadena)
1441                                                                (setf estado 7)
1442                                                               )
1443                                                               ((equal cadena "5")
1444                                                                (setq union_num_dec_neg(concatenate 'string cadena auxiliar_num_dec_neg))
1445                                                                                        (setf auxiliar_num_dec_neg union_num_dec_neg)
1446                                                                                        (print cadena)
1447                                                                                        (setf estado 7)
1448                                                                                        )
1449                                                                                        ((equal cadena "6")
1450                                                                                        (setq union_num_dec_neg(concatenate 'string cadena auxiliar_num_dec_neg))
1451                                                                (setf auxiliar_num_dec_neg union_num_dec_neg)
1452                                                                (print cadena)
1453                                                                (setf estado 7)
1454                                                               )
1455                                                               ((equal cadena "7")
1456                                                                (setq union_num_dec_neg(concatenate 'string cadena auxiliar_num_dec_neg))
1457                                                                                        (setf auxiliar_num_dec_neg union_num_dec_neg)
1458                                                                                        (print cadena)
1459                                                                                        (setf estado 7)
1460                                                                                        )
1461                                                                                        ((equal cadena "8")
1462                                                                                        (setq union_num_dec_neg(concatenate 'string cadena auxiliar_num_dec_neg))
1463                                                                (setf auxiliar_num_dec_neg union_num_dec_neg)
1464                                                                (print cadena)
1465                                                                (setf estado 7)
1466                                                               )
1467                                                               ((equal cadena "9")
1468                                                                (setq union_num_dec_neg(concatenate 'string cadena auxiliar_num_dec_neg))
1469                                                                                        (setf auxiliar_num_dec_neg union_num_dec_neg)
1470                                                                                        (print cadena)
1471                                                                                        (setf estado 7)
1472                                                                                        )
1473                                                                                        )
1474                                                                                        (setf estado 5)
1475                                                                                        )
1476                                                                                        )
1477 
1478                                                                                        )
1479 
1480                                                                                        )
1481                                                                                        (print 'DATOS)
1482                                                                 (print contador_espacio)
1483                                                                 (princ 'espacios)
1484                                                                  (print contador_linea)
1485                                                                  (princ 'lineas)
1486                                                                 (print contador)
1487                                                                 (princ 'errores)
1488                                                                  (print contador_palabra)
1489                                                                  (princ 'palabras)
1490                                                                 (print contador_numeropos)
1491                                                                 (princ '(numeros enteros positivos))
1492                                                                  (print contador_numeroneg)
1493                                                                  (princ '(numeros enteros negativos))
1494                                                                 (print contador_numerodec)
1495                                                                 (princ '(numeros positivos decimales))
1496                                                                  (print contador_numerodecneg)
1497                                                                  (princ '(numeros positivos decimales negativos))
1498 
1499 
1500                                                                )
1501 
1502                                                               )
1503 
1504 
1505 
1506                                                              )
1507 

Les adjunto el proyecto para revisar el codigo fuente y cualquier duda escriban un comentario 

2 comentarios:

  1. Cualquier duda escriban respecto al código fuente y así explicárselos

    ResponderEliminar
  2. Saludos, me gustaria me ayudes con otro link de descarga ya que los que estan ya caducaron. Gracias

    ResponderEliminar