fpspreadsheet: Some cleanup of unused variables.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3526 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2014-09-04 18:55:21 +00:00
parent cbc6beae9a
commit ac149b750d
5 changed files with 24 additions and 69 deletions

View File

@ -186,8 +186,6 @@ type
{ TsOrderingExprNode }
TsOrderingExprNode = class(TsBooleanResultExprNode)
protected
procedure CheckSameNodeTypes; override;
public
procedure Check; override;
end;
@ -300,10 +298,9 @@ type
TsUnaryOperationExprNode = class(TsExprNode)
private
FOperand: TsExprNode;
protected
procedure Check; override;
public
constructor Create(AParser: TsExpressionParser; AOperand: TsExprNode);
procedure Check; override;
destructor Destroy; override;
property Operand: TsExprNode read FOperand;
end;
@ -317,11 +314,11 @@ type
{ TsNotExprNode }
TsNotExprNode = class(TsUnaryOperationExprNode)
protected
procedure Check; override;
procedure GetNodeValue(var Result: TsExpressionResult); override;
public
function AsRPNItem(ANext: PRPNItem): PRPNItem; override;
function AsString: String; override;
procedure Check; override;
function NodeType: TsResultType; override;
end;
@ -350,9 +347,9 @@ type
{ TsFloatToDateTimeExprNode }
TsFloatToDateTimeExprNode = class(TsConvertExprNode)
protected
procedure Check; override;
procedure GetNodeValue(var Result: TsExpressionResult); override;
public
procedure Check; override;
function NodeType: TsResultType; override;
end;
@ -404,9 +401,9 @@ type
private
FValue: TsExpressionResult;
protected
procedure Check; override;
procedure GetNodeValue(var Result: TsExpressionResult); override;
public
procedure Check; override;
constructor CreateString(AParser: TsExpressionParser; AValue: String);
constructor CreateInteger(AParser: TsExpressionParser; AValue: Int64);
constructor CreateDateTime(AParser: TsExpressionParser; AValue: TDateTime);
@ -549,6 +546,7 @@ type
{ TsVariableExprNode }
TsVariableExprNode = class(TsIdentifierExprNode)
public
procedure Check; override;
function AsString: string; override;
Function AsRPNItem(ANext: PRPNItem): PRPNItem; override;
@ -605,7 +603,6 @@ type
FCell: PCell;
FIsRef: Boolean;
protected
procedure Check; override;
function GetCol: Cardinal;
function GetRow: Cardinal;
procedure GetNodeValue(var Result: TsExpressionResult); override;
@ -616,6 +613,7 @@ type
ARow, ACol: Cardinal; AFlags: TsRelFlags); overload;
function AsRPNItem(ANext: PRPNItem): PRPNItem; override;
function AsString: string; override;
procedure Check; override;
function NodeType: TsResultType; override;
property Worksheet: TsWorksheet read FWorksheet;
end;
@ -628,7 +626,6 @@ type
FCol1, FCol2: Cardinal;
FFlags: TsRelFlags;
protected
procedure Check; override;
procedure GetNodeValue(var Result: TsExpressionResult); override;
public
constructor Create(AParser: TsExpressionParser; AWorksheet: TsWorksheet;
@ -637,6 +634,7 @@ type
ARow1,ACol1, ARow2,ACol2: Cardinal; AFlags: TsRelFlags); overload;
function AsRPNItem(ANext: PRPNItem): PRPNItem; override;
function AsString: String; override;
procedure Check; override;
function NodeType: TsResultType; override;
property Worksheet: TsWorksheet read FWorksheet;
end;
@ -859,7 +857,6 @@ resourcestring
SErrUnknownCharacter = 'Unknown character at pos %d: "%s"';
SErrUnexpectedEndOfExpression = 'Unexpected end of expression';
SErrUnknownComparison = 'Internal error: Unknown comparison';
SErrUnknownBooleanOp = 'Internal error: Unknown boolean operation';
SErrBracketExpected = 'Expected ) bracket at position %d, but got %s';
SerrUnknownTokenAtPos = 'Unknown token at pos %d : %s';
SErrLeftBracketExpected = 'Expected ( bracket at position %d, but got %s';
@ -880,7 +877,6 @@ resourcestring
SErrNoNOTOperation = 'Cannot perform NOT operation on expression of type %s: %s';
SErrNoPercentOperation = 'Cannot perform percent operation on expression of type %s: %s';
SErrTypesDoNotMatch = 'Type mismatch: %s<>%s for expressions "%s" and "%s".';
SErrTypesIncompatible = 'Incompatible types: %s<>%s for expressions "%s" and "%s".';
SErrNoNodeToCheck = 'Internal error: No node to check !';
SInvalidNodeType = 'Node type (%s) not in allowed types (%s) for expression: %s';
SErrUnterminatedExpression = 'Badly terminated expression. Found token at position %d : %s';
@ -890,7 +886,6 @@ resourcestring
SErrInvalidArgumentType = 'Invalid type for argument %d: Expected %s, got %s';
SErrInvalidResultType = 'Invalid result type: %s';
SErrNotVariable = 'Identifier %s is not a variable';
SErrInactive = 'Operation not allowed while an expression is active';
SErrCircularReference = 'Circular reference found when calculating worksheet formulas';
{ ---------------------------------------------------------------------
@ -1409,9 +1404,11 @@ begin
end;
function TsExpressionParser.Level1: TsExprNode;
{
var
tt: TsTokenType;
Right: TsExprNode;
}
begin
{$ifdef debugexpr}Writeln('Level 1 ',TokenName(TokenType),': ',CurrentToken);{$endif debugexpr}
{
@ -1425,21 +1422,6 @@ begin
else
}
Result := Level2;
{
try
if TokenType = ttPower then
begin
tt := Tokentype;
GetToken;
CheckEOF;
Right := Level2;
Result := TsPowerExprNode.Create(Result, Right);
end;
except
Result.Free;
raise;
end;
}
{
try
@ -1572,7 +1554,6 @@ end;
function TsExpressionParser.Level6: TsExprNode;
var
tt: TsTokenType;
Right: TsExprNode;
currToken: String;
begin
@ -1600,7 +1581,6 @@ begin
begin
try
CheckEOF;
tt := Tokentype;
GetToken;
Right := Primitive;
CheckNodes(Result, right);
@ -1651,7 +1631,6 @@ var
ID: TsExprIdentifierDef;
Args: TsExprArgumentArray;
AI: Integer;
cell: PCell;
optional: Boolean;
token: String;
begin
@ -1836,10 +1815,9 @@ procedure TsExpressionParser.SetRPNFormula(const AFormula: TsRPNFormula);
procedure CreateNodeFromRPN(var ANode: TsExprNode; var AIndex: Integer);
var
node: TsExprNode;
left: TsExprNode;
right: TsExprNode;
operand: TsExprNode;
left: TsExprNode = nil;
right: TsExprNode = nil;
operand: TsExprNode = nil;
fek: TFEKind;
r,c, r2,c2: Cardinal;
flags: TsRelFlags;
@ -1971,7 +1949,6 @@ procedure TsExpressionParser.SetRPNFormula(const AFormula: TsRPNFormula);
var
index: Integer;
node: TsExprNode;
begin
FExpression := '';
FreeAndNil(FExprNode);
@ -2172,6 +2149,7 @@ end;
procedure TsExprIdentifierDefs.Update(Item: TCollectionItem);
begin
Unused(Item);
if Assigned(FParser) then
FParser.FDirty := true;
end;
@ -2732,7 +2710,6 @@ end;
procedure TsUPlusExprNode.GetNodeValue(var Result: TsExpressionResult);
var
res: TsExpressionresult;
cell: PCell;
begin
Operand.GetNodeValue(Result);
@ -3040,22 +3017,6 @@ begin
inherited Check;
end;
procedure TsOrderingExprNode.CheckSameNodeTypes;
var
LT, RT: TsResultType;
begin
{
LT := Left.NodeType;
RT := Right.NodeType;
case LT of
rtFloat, rtInteger:
if (RT in [rtFloat, rtInteger]) or
((Rt = rtCell) and (Right.Res
if (RT <> LT) then
RaiseParserError(SErrTypesDoNotMatch, [ResultTypeName(LT), ResultTypeName(RT), Left.AsString, Right.AsString])
}
end;
{ TsLessExprNode }
@ -3205,7 +3166,7 @@ begin
Result := RPNFunc(fekConcat,
Right.AsRPNItem(
Left.AsRPNItem(
nil)));
ANext)));
end;
function TsConcatExprNode.AsString: string;
@ -3468,7 +3429,6 @@ end;
procedure TsPowerExprNode.GetNodeValue(var Result: TsExpressionResult);
var
RRes: TsExpressionResult;
ex: TsExprFloat;
begin
Left.GetNodeValue(Result);
if Result.ResultType = rtError then
@ -3599,6 +3559,7 @@ end;
function TsVariableExprNode.AsRPNItem(ANext: PRPNItem): PRPNItem;
begin
Result := ANext; // Just a dummy assignment to silence the compiler...
RaiseParserError('Cannot handle variables for RPN, so far.');
end;
@ -4060,7 +4021,7 @@ begin
rtBoolean : if Arg.ResBoolean then Result := 1.0;
rtString : begin
fs := Arg.Worksheet.Workbook.FormatSettings;
if not TryStrToDateTime(Arg.ResString, Result) then
if not TryStrToDateTime(Arg.ResString, Result, fs) then
Result := 1.0;
end;
rtCell : begin

View File

@ -503,6 +503,7 @@ procedure fpsNOW(var Result: TsExpressionResult; const Args: TsExprParameterArra
// whenever the worksheet recalculates.
// NOW()
begin
Unused(Args);
Result := DateTimeResult(Now);
end;
@ -553,6 +554,7 @@ procedure fpsTODAY(var Result: TsExpressionResult; const Args: TsExprParameterAr
// whenever the worksheet recalculates.
// TODAY()
begin
Unused(Args);
Result := DateTimeResult(Date);
end;
@ -1251,7 +1253,6 @@ var
stype: String;
r1,r2, c1,c2: Cardinal;
cell: PCell;
res: TsExpressionResult;
begin
if Length(Args)=1 then
begin

View File

@ -1209,7 +1209,7 @@ implementation
uses
Math, StrUtils, TypInfo,
fpsStreams, fpsUtils, fpsNumFormatParser, fpsExprParser, fpsFunc;
fpsStreams, fpsUtils, fpsNumFormatParser, fpsExprParser;
{ Translatable strings }
resourcestring
@ -1820,7 +1820,7 @@ begin
parser.ActiveCell := ACell;
end;
parser.Expression := formula;
parser.EvaluateExpression(res);
res := parser.Evaluate;
case res.ResultType of
rtEmpty : WriteBlank(ACell);
rtError : WriteErrorValue(ACell, res.ResError);

View File

@ -1461,7 +1461,7 @@ begin
// 2 bytes for offset to last row
r2 := WordLEToN(AStream.ReadWord);
dr2 := SmallInt(r2 and $3FFF);
ARow1Offset := dr2;
ARow2Offset := dr2;
// 1 byte for offset to first column
dc1 := ShortInt(AStream.ReadByte);
@ -1664,9 +1664,6 @@ end;
procedure TsSpreadBIFFReader.ReadSharedFormula(AStream: TStream);
var
r1, r2, c1, c2: Cardinal;
flags: TsRelFlags;
b: Byte;
ok: Boolean;
cell: PCell;
begin
// Cell range in which the formula is valid
@ -1689,7 +1686,7 @@ begin
AStream.ReadByte;
// RPN formula tokens
ok := ReadRPNTokenArray(AStream, cell);
ReadRPNTokenArray(AStream, cell);
end;
{ Helper function for reading a string with 8-bit length. Here, we implement the
@ -2488,7 +2485,6 @@ var
TokenArraySizePos: Int64;
FinalPos: Int64;
exprDef: TsExprIdentifierDef;
excelCode: Word;
primaryExcelCode, secondaryExcelCode: Word;
begin
RPNLength := 0;
@ -2815,8 +2811,9 @@ var
recordSizePos: Int64;
startPos, finalPos: Int64;
formula: TsRPNFormula;
i: Integer;
begin
RPNLength := 0;
// Determine cell range covered by the shared formula in ACell.
// Find range of cells using this shared formula
r1 := ACell^.Row; r2 := r1;

View File

@ -615,9 +615,6 @@ var
formulaStr: String;
sstIndex: Integer;
number: Double;
ref: String;
r1,r2, c1,c2: Cardinal;
sharedFormulaBase: PCell;
begin
if ANode = nil then
exit;
@ -2531,7 +2528,6 @@ var
r, r1, r2: Cardinal;
c, c1, c2: Cardinal;
cell: PCell;
id: Cardinal;
t, v: String;
begin
cellPosText := TsWorksheet.CellPosToText(ARow, ACol);