From 23a514b3ba66735814a8cf51f5f8a701796a16de Mon Sep 17 00:00:00 2001 From: Andrew Alderwick Date: Wed, 29 Dec 2021 11:59:20 +0000 Subject: [PATCH] Support nested comments in asma too. --- etc/asma.lua | 3 ++- etc/asma.moon | 3 ++- projects/library/asma.tal | 10 +++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/etc/asma.lua b/etc/asma.lua index 67cfdfd..b229b4b 100644 --- a/etc/asma.lua +++ b/etc/asma.lua @@ -89,7 +89,8 @@ do ['}'] = 'asma-macro-end' }) process('asma-first-char-comment', { - [')'] = 'asma-comment-end' + ['('] = 'asma-comment-more', + [')'] = 'asma-comment-less' }) end local traverse_node diff --git a/etc/asma.moon b/etc/asma.moon index 22087c0..e74d77f 100644 --- a/etc/asma.moon +++ b/etc/asma.moon @@ -87,7 +87,8 @@ do -- first characters '{': 'asma-ignore' '}': 'asma-macro-end' process 'asma-first-char-comment', - ')': 'asma-comment-end' + '(': 'asma-comment-more' + ')': 'asma-comment-less' traverse_node = (t, min, max, lefts, rights) -> i = math.ceil (min + max) / 2 diff --git a/projects/library/asma.tal b/projects/library/asma.tal index a61672d..08c53c2 100644 --- a/projects/library/asma.tal +++ b/projects/library/asma.tal @@ -347,6 +347,7 @@ @asma [ &pass $1 &state $1 &line $2 &lines $2 &break $1 &eof $1 + &comment-level $1 &token $2 &orig-token $2 &lit $1 &lit-present $1 &addr $2 &written-addr $2 &flush-fn $2 &src-filename $2 &dest-filename $2 @@ -610,11 +611,17 @@ %asma-STATE-SET { ;asma/state LDA ORA ;asma/state STA } %asma-STATE-CLEAR { #ff EOR ;asma/state LDA AND ;asma/state STA } +@asma-comment-more + ;asma/token LDA2 ;strlen JSR2 ORA ,asma-ignore JCN @asma-comment-start + ;asma/comment-level LDAk INC ROT ROT STA #02 asma-STATE-SET @asma-ignore JMP2r +@asma-comment-less + ;asma/token LDA2 ;strlen JSR2 ORA ,asma-ignore JCN + ;asma/comment-level LDAk #01 SUB DUP SWP2 STA ,asma-ignore JCN @asma-comment-end #02 asma-STATE-CLEAR JMP2r @@ -908,7 +915,8 @@ than than string data ) @asma-first-char-comment - &_entry $2 $2 ') 00 :asma-comment-end + &28 $2 $2 '( 00 :asma-comment-more + &_entry :&28 $2 ') 00 :asma-comment-less @asma-first-char-macro &28 $2 $2 '( 00 :asma-comment-start