Browse Source

* Operator name can now also be finalize

Michaël Van Canneyt 3 years ago
parent
commit
f19402e81b
2 changed files with 6 additions and 3 deletions
  1. 4 3
      packages/fcl-passrc/src/pastree.pp
  2. 2 0
      packages/fcl-passrc/src/pscanner.pp

+ 4 - 3
packages/fcl-passrc/src/pastree.pp

@@ -1175,7 +1175,8 @@ type
     otLogicalAnd, otLogicalNot, otLogicalXor,
     otLogicalAnd, otLogicalNot, otLogicalXor,
     otRightShift,
     otRightShift,
     otEnumerator, otIn,
     otEnumerator, otIn,
-    otInitialize // Management operator
+    otInitialize,
+    orFinalize // Management operators
     );
     );
   TOperatorTypes = set of TOperatorType;
   TOperatorTypes = set of TOperatorType;
 
 
@@ -1764,13 +1765,13 @@ const
            '>',':=','<>','<=','>=','**',
            '>',':=','<>','<=','>=','**',
            '><','Inc','Dec','mod','-','+','Or','div',
            '><','Inc','Dec','mod','-','+','Or','div',
            'shl','or','and','xor','and','not','xor',
            'shl','or','and','xor','and','not','xor',
-           'shr','enumerator','in','');
+           'shr','enumerator','in','','');
   OperatorNames : Array[TOperatorType] of string
   OperatorNames : Array[TOperatorType] of string
        =  ('','implicit','explicit','multiply','add','subtract','divide','lessthan','equal',
        =  ('','implicit','explicit','multiply','add','subtract','divide','lessthan','equal',
            'greaterthan','assign','notequal','lessthanorequal','greaterthanorequal','power',
            'greaterthan','assign','notequal','lessthanorequal','greaterthanorequal','power',
            'symmetricaldifference','inc','dec','modulus','negative','positive','bitwiseor','intdivide',
            'symmetricaldifference','inc','dec','modulus','negative','positive','bitwiseor','intdivide',
            'leftshift','logicalor','bitwiseand','bitwisexor','logicaland','logicalnot','logicalxor',
            'leftshift','logicalor','bitwiseand','bitwisexor','logicaland','logicalnot','logicalxor',
-           'rightshift','enumerator','in','initialize');
+           'rightshift','enumerator','in','initialize','finalize');
 
 
   AssignKindNames : Array[TAssignKind] of string = (':=','+=','-=','*=','/=' );
   AssignKindNames : Array[TAssignKind] of string = (':=','+=','-=','*=','/=' );
 
 

+ 2 - 0
packages/fcl-passrc/src/pscanner.pp

@@ -3977,6 +3977,8 @@ begin
     MValue:=Param;
     MValue:=Param;
     MName:=UpperCase(Trim(Copy(MValue,1,Index-1)));
     MName:=UpperCase(Trim(Copy(MValue,1,Index-1)));
     Delete(MValue,1,Index+1);
     Delete(MValue,1,Index+1);
+    if SameText(MName,'TGenericStringBuilder') then
+        Writeln('TGenericStringBuilder = ',MValue);
     AddMacro(MName,Trim(MValue));
     AddMacro(MName,Trim(MValue));
     end;
     end;
 end;
 end;