NormalOperation class Null safety

A "normal" calculator operation that doesn't take any keyboard arguments. Generally, they perform some kind of calculation, or otherwise manipulate the model.

Inheritance
Implemented types
Implementers

Constructors

NormalOperation({void pressed(ActiveState)?, StackLift? stackLift, required void calc(Model<ProgramOperation> m)?, required String name, bool endsDigitEntry = true, int maxOneByteOpcodes = 9999})
NormalOperation.differentFloatAndInt({void pressed(ActiveState)?, StackLift? stackLift, required void intCalc(Model<ProgramOperation>), required void floatCalc(Model<ProgramOperation>), void complexCalc(Model<ProgramOperation>)?, required String name, bool endsDigitEntry = true, int maxOneByteOpcodes = 9999})
NormalOperation.floatOnly({void pressed(ActiveState)?, StackLift? stackLift, required void floatCalc(Model<ProgramOperation>), void complexCalc(Model<ProgramOperation>)?, required String name, bool endsDigitEntry = true, int maxOneByteOpcodes = 9999})
NormalOperation.intOnly({void pressed(ActiveState)?, StackLift? stackLift, required void intCalc(Model<ProgramOperation>), required String name, bool endsDigitEntry = true})

Properties

arg Arg
A description of this arguments operation, or ArgDone if there is none. For example, the STO operation has an argument to indicate which register to store to.
read-onlyinherited
argShift ProgramOperation?
If used as an argument, the shift key needed for that argument. Rare: sto g and rcl g do this.
read-onlyinherited
complexCalc → (void Function(Model<ProgramOperation> m)?)
The calculation performed when the calculator is in complex mode.
final
debugLogId int
latefinalinherited
endsDigitEntry bool
final
floatCalc → (void Function(Model<ProgramOperation> m)?)
The calculation performed when the calculator is in floating-point mode.
final
hashCode int
The hash code for this object.
read-onlyinherited
intCalc → (void Function(Model<ProgramOperation> m)?)
The calculation performed when the calculator is in integer mode.
final
isShift bool
Is this the f or g shift key?
read-onlyinherited
maxOneByteOpcodes int
final
name String
Human-readable name for program listing
finalinherited
numericValue int?
Give the numeric value of a number key, or one of the 15C's letters (which are 20..24). cf. tests.dart, SelfTests.testNumbers().
read-onlyinherited
opcode int
latefinalinherited
programDisplay String
latefinalinherited
programListing String
latefinalinherited
programListingArgName String?
Name for this key as an arg in the program listing, if other than the default.
read-onlyinherited
rcName String
The row/column "name", which for digits looks like " 1".
latefinalinherited
runtimeType Type
A representation of the runtime type of the object.
read-onlyinherited

Methods

beforeCalculate(Resting resting) → void
inherited
calcDisabled(Controller controller) bool
By default, operations, if present, work for all kinds of controllers, but cf. BranchingOperation
inherited
getCalculation<T extends ProgramOperation>(Model<ProgramOperation> m, DisplayModeSelector<(void Function(Model<ProgramOperation>)?), T> selector) → (void Function(Model<ProgramOperation>)?)
override
handleOpBeforeCalculate(Model<ProgramOperation> m, void opBeforeCalculate()) → void
Execute the beforeCalculate function of the operation. Normally it just executes, but some 15C operations can be deferred; this method can be overridden to do that.
inherited
init(int registerBase, {required OpInitFunction f, required ProgramOperation? shift, required bool argDot, required ProgramOperation? arg, required bool userMode}) → void
inherited
liftStackIfEnabled(Model<ProgramOperation> m) bool
override
makeInputState(Arg arg, Controller c, LimitedState fromState) ControllerState
inherited
matches(ProgramOperation key, bool userMode) Arg?
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
inherited
possiblyAlterStackLift(Controller c) → void
Either enable or disable stack lift, if appropriate, after this operation's calculation is done. This will not be called if this operation doesn't have a calculation (intCalc or floatCalc on itself, or on its argument).
inherited
pressed(LimitedState arg) → void
What to do when the key is pressed.
override
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited