diff options
| author | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2026-10-31 13:46:11 +0100 |
|---|---|---|
| committer | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2026-10-31 21:13:19 +0100 |
| commit | 4aa2b717f9e050783b567540d9bb0193d692e3e9 (patch) | |
| tree | 39b3734c464655e6d1c21390945209a66f952654 /TODO | |
| parent | e0bf13622b0922252439e3fa8b43df9877678d75 (diff) | |
support floating point numbers
* Extends the SciTECO type system. A number on the expression stack
or in a Q-register can be either an integer or a float.
* Floating point constants begin with a digit (like all other
numbers), are followed by a `.` and an optional fractional part.
Exponents cannot currently be written.
E.g. `1.` == `1.0`. But `.0` would still be `.,0`.
(!) To push an integer followed by dot, you must now write e.g. `1,.` or `1 .`.
* All of the basic arithmetic operators operate like this:
If both operands are integers, the result is also an integer (integer arithmetics).
If at least one of the operands is a float, the result is also a float (float arithmetics).
* All of the binary operators (AND, OR, XOR) always cast all
operands to integer and the result is always an integer as well.
* You can "cast" integers to float by `*1.` or `/1.`.
You can "cast" floats to integers using `#0`.
* Most commands still accept only integers. Floats are implicitly casted to integers.
Float-aware commands are: =, \, ^W, Qq, Uq, %q and the conditionals.
* `%q` will not change the current type of register q.
* Numeric part of "lexer.font" is now a float (in points).
* You cannot currently print octal and hexadecimal floats.
`==` and `===` are identical to `=` on floats.
* `===` is now printing hex integers in lower case.
This is because SciTECO's coding style for hex constants is also lower case.
* `--with-teco-integer` renamed to `--with-teco-number`.
Diffstat (limited to 'TODO')
| -rw-r--r-- | TODO | 15 |
1 files changed, 0 insertions, 15 deletions
@@ -274,21 +274,6 @@ Features: be disabled in parser-terminator-mode). Q-Reg specs should support alternative balanced escapes as well for symmetry. - * Floating point numbers constants. - The "." command does not take arguments, so it - could be part of the number syntax. This disallows constructs - like "23." to push 23 and Dot which have to be replaced by - "23,.". - * In the most simple case, all TECO numbers could be - floats/doubles with division/modulo having integer semantics. - A separate floating point division operator could be introduced - (e.g. ^/ with modulo being remapped to ^%). - * SciTECO could also be "dynamically" typed by using - integer and floating point types internally. - The operator decides how to interpret the arguments - and the return type. This is good since we'd need less operators - and it's good to keep true integers around. - * The first application of floats could be for U[lexer.font]. * Key macro masking flag for the beginning of the command line. May be useful e.g. for solarized's F5 key (i.e. function key macros that need to terminate the command line as they |
