uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

commit 86674da93ebf89c7eb52420990593fc6846ce526
parent abd6a3a5da3341d761c73daf17490ea8aee0ae79
Author: Andrew Alderwick <andrew@alderwick.co.uk>
Date:   Wed, 29 Dec 2021 11:58:34 +0000

Bring etc/asma.moon up to date.

Diffstat:
Metc/asma.lua | 46+++++-----------------------------------------
Metc/asma.moon | 46+++++-----------------------------------------
Mprojects/library/asma.tal | 6+++---
3 files changed, 13 insertions(+), 85 deletions(-)

diff --git a/etc/asma.lua b/etc/asma.lua @@ -79,7 +79,8 @@ do ['['] = 'asma-ignore', [']'] = 'asma-ignore', ['('] = 'asma-comment-start', - [')'] = 'asma-comment-end' + [')'] = 'asma-comment-end', + ['~'] = 'asma-include' }) process('asma-first-char-macro', { ['('] = 'asma-comment-start', @@ -147,8 +148,8 @@ fmt = function(...) return (('\t%-11s %-10s %-12s %-14s %s '):format(...):gsub(' +$', '\n')) end do - local _with_0 = assert(io.open('projects/software/asma.tal.tmp', 'w')) - for l in assert(io.lines('projects/software/asma.tal')) do + local _with_0 = assert(io.open('projects/library/asma.tal.tmp', 'w')) + for l in assert(io.lines('projects/library/asma.tal')) do if l:match('--- cut here ---') then break end @@ -189,43 +190,6 @@ do end _with_0:write('\n') end - _with_0:write([[( - Heap, a large temporary area for keeping track of labels. More complex - programs need more of this space. If there's insufficient space then the - assembly process will fail, but having extra space above what the most - complex program needs provides no benefit. - - This heap, and the buffers below, are free to be used to hold temporary - data between assembly runs, and do not need to be initialized with any - particular contents to use the assembler. -) - -@asma-heap - -|e000 &end - -( - Buffer for use with loading source code. - The minimum size is the length of the longest token plus one, which is - 0x21 to keep the same capability of the C assembler. - Larger sizes are more efficient, provided there is enough - heap space to keep track of all the labels. -) - -@asma-read-buffer - -|f800 &end - -( - Buffer for use with writing output. - The minimum size is 1, and larger sizes are more efficient. -) - -@asma-write-buffer - -|ffff &end - -]]) _with_0:close() end -return os.execute('mv projects/software/asma.tal.tmp projects/software/asma.tal') +return os.execute('mv projects/library/asma.tal.tmp projects/library/asma.tal') diff --git a/etc/asma.moon b/etc/asma.moon @@ -1,7 +1,7 @@ -- -- Asma tree helper script -- --- This script updates the trees at the end of projects/software/asma.tal when +-- This script updates the trees at the end of projects/library/asma.tal when -- Uxn's opcode set changes or new runes (first character of tokens) are -- created, so that new changes in the C assembler can be incorporated rapidly -- into asma. @@ -80,6 +80,7 @@ do -- first characters ']': 'asma-ignore' '(': 'asma-comment-start' ')': 'asma-comment-end' + '~': 'asma-include' process 'asma-first-char-macro', '(': 'asma-comment-start' ')': 'asma-comment-end' @@ -122,8 +123,8 @@ printout = true fmt = (...) -> ('\t%-11s %-10s %-12s %-14s %s '\format(...)\gsub ' +$', '\n') -with assert io.open 'projects/software/asma.tal.tmp', 'w' - for l in assert io.lines 'projects/software/asma.tal' +with assert io.open 'projects/library/asma.tal.tmp', 'w' + for l in assert io.lines 'projects/library/asma.tal' if l\match '--- cut here ---' break \write l @@ -155,43 +156,6 @@ with assert io.open 'projects/software/asma.tal.tmp', 'w' '' \write fmt label, lefts[k] or ' $2', rights[k] or ' $2', unpack v \write '\n' - \write [[( - Heap, a large temporary area for keeping track of labels. More complex - programs need more of this space. If there's insufficient space then the - assembly process will fail, but having extra space above what the most - complex program needs provides no benefit. - - This heap, and the buffers below, are free to be used to hold temporary - data between assembly runs, and do not need to be initialized with any - particular contents to use the assembler. -) - -@asma-heap - -|e000 &end - -( - Buffer for use with loading source code. - The minimum size is the length of the longest token plus one, which is - 0x21 to keep the same capability of the C assembler. - Larger sizes are more efficient, provided there is enough - heap space to keep track of all the labels. -) - -@asma-read-buffer - -|f800 &end - -( - Buffer for use with writing output. - The minimum size is 1, and larger sizes are more efficient. -) - -@asma-write-buffer - -|ffff &end - -]] \close! -os.execute 'mv projects/software/asma.tal.tmp projects/software/asma.tal' +os.execute 'mv projects/library/asma.tal.tmp projects/library/asma.tal' diff --git a/projects/library/asma.tal b/projects/library/asma.tal @@ -931,10 +931,10 @@ &3b :&3a $2 '; 00 :asma-literal-abs-addr &40 :&3b :&5b '@ 00 :asma-label-define &5b $2 $2 '[ 00 :asma-ignore - &5d :&40 :&7c '] 00 :asma-ignore + &5d :&40 :&7d '] 00 :asma-ignore &7b $2 $2 '{ 00 :asma-ignore - &7c :&7b :&7d '| 00 :asma-pad-absolute - &7d $2 :&7e '} 00 :asma-ignore + &7c :&7b $2 '| 00 :asma-pad-absolute + &7d :&7c :&7e '} 00 :asma-ignore &7e $2 $2 '~ 00 :asma-include @asma-opcodes