[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] [build-improvements] Espace Lisp Esapce character in n
From: |
Gabriel Dos Reis |
Subject: |
[Axiom-developer] [build-improvements] Espace Lisp Esapce character in newfort.boot |
Date: |
28 Oct 2006 15:30:23 +0200 |
Hi,
This patchlet fixes a thinko in src/interp/newfort.boot.
The short explanation is that the use of "!" does not math the
"specification" in src/boot/Makefile
The standard identifiers start with a letter (a-z or A-Z) dollar
sign (\$), question mark (?), or the percent sign (%), and are
followed by any number of letters, digits, single quotes('),
question marks, or percent signs. It is possible however, by using
the escape character (\_), to construct identifiers that contain
any characters except the blank or newline character.
The long explanation is delayed, but in nutshell "!" is the escape
character in new Boot for introducing Lisp expressions in Boot. It
needs to be escaped when used as part of an identifier. I uncovered
this when translating newfort.boot with bootsys (new Boot translator).
-- Gaby
2006-10-28 Gabriel Dos Reis <address@hidden>
* newfort.boot.pamphlet (updateSymbolTable): Escape ! in names.
*** newfort.boot.pamphlet (revision 15931)
--- newfort.boot.pamphlet (local)
*************** currentSP () ==
*** 743,749 ****
$currentSubprogram or "MAIN"
updateSymbolTable(name,type) ==
! fun := ['$elt,'SYMS,'declare!]
coercion := ['_:_:,STRING type,'FST]
$insideCompileBodyIfTrue: local := false
interpret([fun,["QUOTE",name],coercion])
--- 743,749 ----
$currentSubprogram or "MAIN"
updateSymbolTable(name,type) ==
! fun := ['$elt,'SYMS,'declare_!]
coercion := ['_:_:,STRING type,'FST]
$insideCompileBodyIfTrue: local := false
interpret([fun,["QUOTE",name],coercion])
- [Axiom-developer] [build-improvements] Espace Lisp Esapce character in newfort.boot,
Gabriel Dos Reis <=