mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-24 12:49:18 +02:00
fcl-passrc: clean up
git-svn-id: trunk@42291 -
This commit is contained in:
parent
02b66457f5
commit
ec3c050ac7
@ -14369,6 +14369,19 @@ end;
|
|||||||
|
|
||||||
procedure TPasResolver.BI_LowHigh_OnEval(Proc: TResElDataBuiltInProc;
|
procedure TPasResolver.BI_LowHigh_OnEval(Proc: TResElDataBuiltInProc;
|
||||||
Params: TParamsExpr; Flags: TResEvalFlags; out Evaluated: TResEvalValue);
|
Params: TParamsExpr; Flags: TResEvalFlags; out Evaluated: TResEvalValue);
|
||||||
|
|
||||||
|
function IsDynArrayConstExpr(IdentEl: TPasElement): boolean;
|
||||||
|
begin
|
||||||
|
Result:=false;
|
||||||
|
if not (IdentEl is TPasVariable) then exit;
|
||||||
|
if not (TPasVariable(IdentEl).Expr is TPasExpr) then exit;
|
||||||
|
|
||||||
|
if (IdentEl.ClassType=TPasConst) and TPasConst(IdentEl).IsConst then
|
||||||
|
exit(true);
|
||||||
|
if fExprEvaluator.IsConst(Params) then
|
||||||
|
exit(true); // a const refers an initial value
|
||||||
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
Param: TPasExpr;
|
Param: TPasExpr;
|
||||||
ParamResolved: TPasResolverResult;
|
ParamResolved: TPasResolverResult;
|
||||||
@ -14398,8 +14411,7 @@ begin
|
|||||||
// dyn or open array
|
// dyn or open array
|
||||||
if Proc.BuiltIn=bfLow then
|
if Proc.BuiltIn=bfLow then
|
||||||
Evaluated:=TResEvalInt.CreateValue(0)
|
Evaluated:=TResEvalInt.CreateValue(0)
|
||||||
else if (ParamResolved.IdentEl is TPasVariable)
|
else if IsDynArrayConstExpr(ParamResolved.IdentEl) then
|
||||||
and (TPasVariable(ParamResolved.IdentEl).Expr is TPasExpr) then
|
|
||||||
begin
|
begin
|
||||||
Expr:=TPasVariable(ParamResolved.IdentEl).Expr;
|
Expr:=TPasVariable(ParamResolved.IdentEl).Expr;
|
||||||
if Expr is TArrayValues then
|
if Expr is TArrayValues then
|
||||||
|
@ -511,7 +511,9 @@ Function TokenToAssignKind( tk : TToken) : TAssignKind;
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
{$IF FPC_FULLVERSION>=30301}
|
||||||
uses strutils;
|
uses strutils;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
const
|
const
|
||||||
WhitespaceTokensToIgnore = [tkWhitespace, tkComment, tkLineEnding, tkTab];
|
WhitespaceTokensToIgnore = [tkWhitespace, tkComment, tkLineEnding, tkTab];
|
||||||
@ -711,7 +713,6 @@ function ParseSource(AEngine: TPasTreeContainer;
|
|||||||
var
|
var
|
||||||
FileResolver: TBaseFileResolver;
|
FileResolver: TBaseFileResolver;
|
||||||
Parser: TPasParser;
|
Parser: TPasParser;
|
||||||
Start, CurPos: integer; // in FPCCommandLine
|
|
||||||
Filename: String;
|
Filename: String;
|
||||||
Scanner: TPascalScanner;
|
Scanner: TPascalScanner;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user