program arbolM23; {$APPTYPE CONSOLE} uses SysUtils, Comprobar, Lista, Fichero, Palabras; Var fiche,fichs,fichp:tFichero; list:tListaPI; listPal:tListaPal; listSal:tListaSal; cont:tCont; err,es,novacio:tBool; name1,name2,name3:String; BEGIN cont:=0; If paramcount<>3 then writeln ('Parametros Incorrectos') // Hay que cotrolar que el nmero de parametros sea correcto Else begin novacio:=false; name1:=paramstr (1); assign (fiche,name1); If existeFichero (fiche) then begin reset (fiche); name3:=paramstr (3); assign (fichs,name3); rewrite (fichs); es:=false; Repeat inc (cont); Linea (fiche,fichs,list,err,cont,es,novacio); Until eof (fiche) or err; If novacio then begin If not err then begin If es then begin name2:=paramstr (2); assign (fichp,name2); If palabra (fichp,fichs,listPal) then begin arbolDerivacion (list); If comprob (list,listPal,listSal) then begin writeln; writeln ('SI.'); writeln (fichs,'SI.'); writeln (fichs); grabarListaSal (listSal,fichs); end Else begin writeln; writeln ('NO.'); writeln (fichs,'NO.'); end; end; end Else begin writeln (fichs,''); writeln (fichs,'No existe ninguna produccin con axioma en parte izquierda.'); writeln; writeln (''); writeln ('No existe ninguna produccion con axioma en parte izquierda.'); end; end; end Else begin writeln (fichs,''); writeln (fichs,'El fichero est vaco.'); writeln (''); writeln ('El fichero esta vacio.'); end; close (fiche); close (fichs); end Else writeln ('El fichero de gramtica no existe.'); end; END.