aboutsummaryrefslogtreecommitdiffhomepage
path: root/TODO
diff options
context:
space:
mode:
authorRobin Haberkorn <rhaberkorn@fmsbw.de>2026-10-31 13:46:11 +0100
committerRobin Haberkorn <rhaberkorn@fmsbw.de>2026-10-31 21:13:19 +0100
commit4aa2b717f9e050783b567540d9bb0193d692e3e9 (patch)
tree39b3734c464655e6d1c21390945209a66f952654 /TODO
parente0bf13622b0922252439e3fa8b43df9877678d75 (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--TODO15
1 files changed, 0 insertions, 15 deletions
diff --git a/TODO b/TODO
index 6c7f0f6..605be9d 100644
--- a/TODO
+++ b/TODO
@@ -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