Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Lawrence D'Oliveiro Newsgroups: comp.os.vms Subject: Re: Bliss Date: Sat, 27 Jul 2024 04:36:45 -0000 (UTC) Organization: A noiseless patient Spider Lines: 33 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Sat, 27 Jul 2024 06:36:45 +0200 (CEST) Injection-Info: dont-email.me; posting-host="923de006914fc707793912d16389c2d1"; logging-data="3417034"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19YFz9fjhKNtMq836RK8w5o" User-Agent: Pan/0.159 (Vovchansk; ) Cancel-Lock: sha1:sNE3GAFq3P+G/KWF5pYzm2gFT2U= Bytes: 1793 On Fri, 26 Jul 2024 02:10:19 -0000 (UTC), I wrote: > Adapted this example from page 15-9: This version does work: MODULE quote_test_2 = BEGIN OWN x; MACRO mark = 4 %; MACRO m = (mark) + %UNQUOTE mark %; GLOBAL ROUTINE doit : NOVALUE = BEGIN MACRO %QUOTE mark = 5 %; x = m; END; END ELUDOM But note the parentheses around “(mark)”; it doesn’t seem to get the addition right without that. Generated code: doit: ... movq $9, x(%rip) retq The problem seems to be that the handling of the %UNQUOTE construct is only expecting the following name to be that of a macro, not a literal or anything else.