axiom-developer
[Top][All Lists]
Advanced

[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])




reply via email to

[Prev in Thread] Current Thread [Next in Thread]