codetools: fixed RunAssignment clean up

git-svn-id: trunk@27510 -
This commit is contained in:
mattias 2010-09-28 16:08:59 +00:00
parent 8ad5e11f4b
commit 0f2583abfe
2 changed files with 8 additions and 6 deletions

View File

@ -1369,6 +1369,7 @@ begin
FStack.Push(ctcssBegin,AtomStart); FStack.Push(ctcssBegin,AtomStart);
repeat repeat
ReadRawNextPascalAtom(Src,AtomStart); ReadRawNextPascalAtom(Src,AtomStart);
//debugln(['TCTConfigScriptEngine.RunBegin ',GetAtom]);
if (AtomStart^=#0) then begin if (AtomStart^=#0) then begin
ErrorMissingEnd; ErrorMissingEnd;
break; break;
@ -1377,10 +1378,11 @@ begin
break; break;
end else if AtomStart=';' then begin end else if AtomStart=';' then begin
// skip // skip
end else end else begin
RunStatement(Skip); RunStatement(Skip);
end;
until false; until false;
// clean up stack // clean up stack (recover from errors)
while FStack.Top>StartTop do FStack.Pop; while FStack.Top>StartTop do FStack.Pop;
end; end;
@ -1451,14 +1453,14 @@ procedure TCTConfigScriptEngine.RunAssignment(Skip: boolean);
var var
VarStart: PChar; VarStart: PChar;
Variable: PCTCfgScriptVariable; Variable: PCTCfgScriptVariable;
StartTop: TCTCfgScriptStackItemType;
OperatorStart: PChar; OperatorStart: PChar;
StartTop: LongInt;
begin begin
VarStart:=AtomStart; VarStart:=AtomStart;
{$IFDEF VerboseCTCfgScript} {$IFDEF VerboseCTCfgScript}
debugln(['TCTConfigScriptEngine.RunAssignment ',GetIdentifier(VarStart)]); debugln(['TCTConfigScriptEngine.RunAssignment ',GetIdentifier(VarStart)]);
{$ENDIF} {$ENDIF}
StartTop:=FStack.TopTyp; StartTop:=FStack.Top;
FStack.Push(ctcssAssignment,VarStart); FStack.Push(ctcssAssignment,VarStart);
ReadRawNextPascalAtom(Src,AtomStart); ReadRawNextPascalAtom(Src,AtomStart);
{$IFDEF VerboseCTCfgScript} {$IFDEF VerboseCTCfgScript}
@ -1493,7 +1495,7 @@ begin
{$ENDIF} {$ENDIF}
end; end;
// clean up stack // clean up stack
while FStack.TopTyp>StartTop do FStack.Pop; while FStack.Top>StartTop do FStack.Pop;
end; end;
procedure TCTConfigScriptEngine.PushNumberValue(const Number: int64); procedure TCTConfigScriptEngine.PushNumberValue(const Number: int64);

View File

@ -41,7 +41,7 @@ var
begin begin
if Paramcount>0 then begin if Paramcount>0 then begin
if Paramcount<>1 then begin if Paramcount<>1 then begin
writeln('Usage: '+ParamStrUTF8(0)+' filename line column'); writeln('Usage: '+ParamStrUTF8(0)+' filename');
exit; exit;
end; end;
Filename:=ExpandFileNameUTF8(ParamStrUTF8(1)); Filename:=ExpandFileNameUTF8(ParamStrUTF8(1));