ソースを参照

* Added option to stop on parser errors

git-svn-id: trunk@8163 -
michael 18 年 前
コミット
0cd246808e
1 ファイル変更9 行追加2 行削除
  1. 9 2
      utils/fpdoc/fpdoc.pp

+ 9 - 2
utils/fpdoc/fpdoc.pp

@@ -40,6 +40,7 @@ var
   InputFiles, DescrFiles: TStringList;
   PackageName, DocLang, ContentFile : String;
   Engine: TFPDocEngine;
+  StopOnParserError : Boolean;
 
 Procedure Usage(AnExitCode : Byte);
 
@@ -108,6 +109,7 @@ begin
   DescrFiles := TStringList.Create;
   BackendOptions := TStringList.Create;
   Engine := TFPDocEngine.Create;
+  StopOnParserError:=False;
 end;
 
 procedure FreeOptions;
@@ -161,6 +163,8 @@ begin
     Engine.WarnNoNode := True
   else if s = '--show-private' then
     Engine.HidePrivate := False
+  else if s = '--stop-on-parser-error' then
+    StopOnParserError := True
   else
     begin
     i := Pos('=', s);
@@ -243,8 +247,11 @@ begin
       ParseSource(Engine, InputFiles[i], OSTarget, CPUTarget);
     except
       on e: EParserError do
-        WriteLn(StdErr, Format('%s(%d,%d): %s',
-          [e.Filename, e.Row, e.Column, e.Message]));
+        If StopOnParserError then
+          Raise
+        else 
+          WriteLn(StdErr, Format('%s(%d,%d): %s',
+                  [e.Filename, e.Row, e.Column, e.Message]));
     end;
   WriterClass:=GetWriterClass(Backend);
   Writer:=WriterClass.Create(Engine.Package,Engine);