All pastes #158959 Raw Edit

Unnamed

public text v1 · immutable
·published 2006-09-02 14:41 UTC
rendered paste body
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,'<ERROR>');
            writeln (fichs,'No existe ninguna produccin con axioma en parte izquierda.');
            writeln;
            writeln ('<ERROR>');
            writeln ('No existe ninguna produccion con axioma en parte izquierda.');
          end;
        end;
      end
      Else
      begin
        writeln (fichs,'<ERROR>');
        writeln (fichs,'El fichero est vaco.');
        writeln ('<ERROR>');
        writeln ('El fichero esta vacio.');
      end;
      close (fiche);
      close (fichs);
    end
    Else writeln ('El fichero de gramtica no existe.');
  end;
END.