pas2js: started nodepas2js

git-svn-id: trunk@40098 -
This commit is contained in:
Mattias Gaertner 2018-10-30 23:18:09 +00:00
parent f8050815ea
commit bbb5943fef
2 changed files with 74 additions and 8 deletions

View File

@ -39,7 +39,7 @@
<Filename Value="nodepas2js.js" ApplyConventions="False"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<IncludeFiles Value="$(ProjOutDir);../../packages/pastojs/src"/>
<OtherUnitFiles Value="../../packages/fcl-js/src;../../packages/fcl-json/src;../../packages/fcl-passrc/src;../../packages/pastojs/src"/>
<UnitOutputDirectory Value="js"/>
</SearchPaths>

View File

@ -1,17 +1,83 @@
program nodepas2js;
{$mode objfpc}
{$I pas2js_defines.inc}
uses
JS, NodeJS, NodeJSFS, Math,
JS, NodeJSApp,
Classes, SysUtils,
jsbase, jstree, jswriter, JSSrcMap,
fpjson,
PasTree, PScanner, PParser, PasResolveEval, PasResolver, PasUseAnalyzer,
FPPas2Js,
Pas2jsFileUtils, Pas2jsLogger, Pas2jsPParser, Pas2jsFileCache, Pas2jsCompiler;
Pas2jsFileUtils, Pas2jsLogger, Pas2jsCompiler;
type
{ TPas2jsCLI }
TPas2jsCLI = class(TNodeJSApplication)
private
FCompiler: TPas2jsCompiler;
protected
procedure DoRun; override;
public
constructor Create(TheOwner: TComponent); override;
destructor Destroy; override;
property Compiler: TPas2jsCompiler read FCompiler;
end;
procedure TPas2jsCLI.DoRun;
var
ParamList: TStringList;
i: Integer;
begin
// Your code here
ParamList:=TStringList.Create;
try
for i:=1 to ParamCount do
ParamList.Add(Params[i]);
try
Compiler.Run(ParamStr(0),GetCurrentDirPJ,ParamList);
except
on E: ECompilerTerminate do ;
on E: Exception do
begin
{AllowWriteln}
writeln(E.Message);
{AllowWriteln-}
if ExitCode=0 then
ExitCode:=ExitCodeErrorInternal;
end
else begin
{AllowWriteln}
writeln('ERROR value: ',JSExceptValue);
{AllowWriteln-}
if ExitCode=0 then
ExitCode:=ExitCodeErrorInternal;
end;
end;
finally
ParamList.Free;
Compiler.Log.CloseOutputFile;
end;
// stop program loop
Terminate; // Keep ExitCode!
end;
constructor TPas2jsCLI.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
StopOnException:=True;
FCompiler:=TPas2jsCompiler.Create;
end;
destructor TPas2jsCLI.Destroy;
begin
FreeAndNil(FCompiler);
inherited Destroy;
end;
var
Application: TPas2jsCLI;
begin
Application:=TPas2jsCLI.Create(nil);
Application.Run;
Application.Free;
end.