⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intmain.pas

📁 一个Delphi解释器的例子
💻 PAS
字号:
unit intmain;

interface

uses
  delphin,classes,sysutils;

procedure MainProc;

implementation

{-----------------------------------------}

procedure CreateIntFile(Const FName:String);
Var
  FOut:TFileStream;
  FMem:TMemoryStream;
  H:THalCompiler;
begin
  FMem:=TMemoryStream.Create;
  try
    FOut:=TFileStream.Create(ChangeFileExt(FName,'.INT'),fmcreate);
    try
      FMem.LoadFromFile(FName);
      FMem.Seek(0,soFromBeginning);
      H:=THalCompiler.Create(FMem,nil);
      With H do
        While True do
        begin
          Token:=ReadToken;
          If Token.ID=idendoffile then break;
          If Token.ID=id_implement then
          begin
           FOut.CopyFrom(FMem,CurRead);
           break;
          end;
        end;
    finally
      FOut.Free;
    end;
  finally
    FMem.Free;
  end;
end;

{------------------------------------------------------------------}

function AddSlash(Const Path:String):String;
begin
  If (Length(Path)>0) and (Path[length(Path)]<>'\')
  then
    Result:=Path+'\'
  else
    Result:=Path;
end;

{-----------------------------------------}

procedure CreateINTsForDir(Const APath:String );
var
  SearchRec: TSearchRec;
  Re:Integer;
  FileName:String;
begin
  Re:=FindFirst(AddSlash(APath)+'*.pas' , faAnyFile, SearchRec);
  try
    While Re=0 do
    begin
      FileName:=AddSlash(APath)+Searchrec.Name;
      CreateIntFile(FileName);
      Writeln(FileName);
      Re:=FindNext(SearchRec);
    end;
  finally
    FindClose(SearchRec);
  end;  
end;

{-----------------------------------------}

procedure MainProc;
begin
  writeln('INT Maker Version 1.01');
  writeln('Copyright (c) 1997,1998 S.Kurinny & S.Kostinsky');
  writeln;
  writeln('This utility creates INT files from PAS files in the current directory');
  writeln('or in the directory passed as parameter');
  
  if ParamCount=0
  then
    CreateINTsForDir(ExtractFilePath(ParamStr(0)))
  else
    CreateINTsForDir(ParamStr(1));

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -