System Function Assigned

This procedure Processes system function Assigned.
Procedure Func_Assigned; Far;
begin
  ExpectTokenAndGetNext (Token_LeftParenthesis);
  Expression^.ExpectVariableReferenceExceptProcedureOrFunction;
  Case Expression^.TypeDefPtr^.BaseType of
    btPointer,
    btFunctionProcedure: With Expression^ do
                           begin
                             ExpectTokenAndGetNext (Token_RightParenthesis);
                             Expression^.Calculate;
                             Exclude (DataType, it32Bit);
                             Expression^.LoadExpressionToRegister (rAX);
                             Inc (Value.Word, 2);
                             Expression^.GenerateArithmeticInstructionWith_ACC (mod_OR_rm);
                             Include (UsedRegisters, urAX);
                             Expression^.EndIntermediateCodeSubroutine;
                             Expression^.SetExpressionToBooleanJump (JNE);
                           end;
    else Error (PointerOrProceduralVariableExpected);
  end;
end;
 
 
 
© 2017 Turbo Pascal | Privacy Policy