diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-08-02 12:05:25 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-08-02 15:11:52 -0700 |
commit | 0452b05f5a78b33d94352c676e021b4a1abfb5f2 (patch) | |
tree | 53ec02b7898b125b88e27121ee74f22456c524b4 /apps | |
parent | 1b79f705b9975a3293fd111c5dc129e887dc01c0 (diff) | |
download | mu-0452b05f5a78b33d94352c676e021b4a1abfb5f2.tar.gz |
6703 - new types: code-point and grapheme
Both have the same size: 4 bytes. So far I've just renamed print-byte to print-grapheme, but it still behaves the same. I'm going to support printing code-points next, but grapheme 'clusters' spanning multiple code-points won't be supported for some time.
Diffstat (limited to 'apps')
-rw-r--r-- | apps/browse.mu | 6 | ||||
-rwxr-xr-x | apps/mu | bin | 368997 -> 369023 bytes | |||
-rw-r--r-- | apps/mu.subx | 4 | ||||
-rw-r--r-- | apps/print-file.mu | 2 | ||||
-rwxr-xr-x | apps/random | bin | 23597 -> 23601 bytes |
5 files changed, 8 insertions, 4 deletions
diff --git a/apps/browse.mu b/apps/browse.mu index 77ff999c..5681060f 100644 --- a/apps/browse.mu +++ b/apps/browse.mu @@ -96,7 +96,8 @@ $line-loop: { update-attributes c, r compare c, 0xa # newline break-if-= # no need to print newlines - print-byte 0, c + var g/eax: grapheme <- copy c + print-grapheme 0, g col <- increment loop } @@ -176,6 +177,7 @@ fn dump in: (addr buffered-file) { var c/eax: byte <- read-byte-buffered in compare c, 0xffffffff # EOF marker break-if-= - print-byte 0, c + var g/eax: grapheme <- copy c + print-grapheme 0, g loop } diff --git a/apps/mu b/apps/mu index 0d808397..fbacd783 100755 --- a/apps/mu +++ b/apps/mu Binary files differdiff --git a/apps/mu.subx b/apps/mu.subx index cb2d6d71..20f59336 100644 --- a/apps/mu.subx +++ b/apps/mu.subx @@ -412,8 +412,10 @@ Type-id: # (stream (addr array byte)) # some SubX types deliberately left undefined in Mu; they can only be operated on using SubX primitives "stream"/imm32 # 11 "slice"/imm32 # 12 + "code-point"/imm32 # 13; smallest scannable unit from a text stream + "grapheme"/imm32 # 14; smallest printable unit; will eventually be composed of multiple code-points, but currently corresponds 1:1 # Keep Primitive-type-ids in sync if you add types here. - 0/imm32 0/imm32 0/imm32 + 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 diff --git a/apps/print-file.mu b/apps/print-file.mu index aed4579d..7cd51bdc 100644 --- a/apps/print-file.mu +++ b/apps/print-file.mu @@ -31,7 +31,7 @@ $main-body: { var c/eax: byte <- read-byte-buffered in-addr compare c, 0xffffffff # EOF marker break-if-= - print-byte 0, c + print-grapheme 0, c loop } } diff --git a/apps/random b/apps/random index 5c828306..4123332e 100755 --- a/apps/random +++ b/apps/random Binary files differ |