]> sourceware.org Git - cgen.git/commitdiff
add some fixmes
authorDoug Evans <xdje42@gmail.com>
Wed, 19 Aug 2009 15:58:10 +0000 (15:58 +0000)
committerDoug Evans <xdje42@gmail.com>
Wed, 19 Aug 2009 15:58:10 +0000 (15:58 +0000)
insn.scm

index a70eb424efe0e9603a1d88ab0a9447c55d2a6127..1c63456831e57788b19ec2bf14ffec31ac760cc5 100644 (file)
--- a/insn.scm
+++ b/insn.scm
 ; The mnemonic, as we define it, is everything up to, but not including, the
 ; first space or '$'.
 ; FIXME: Rename to syntax-mnemonic, and take a syntax string argument.
+; FIXME: Doesn't handle \$ to indicate a $ is actually in the mnemonic.
 
 (define (insn-mnemonic insn)
   (letrec ((mnem-len (lambda (str len)
       (if (> (string-length syntax) 0)
          (begin
            (cond 
-            ; Handle escaped syntax metacharacters 
+            ; Handle escaped syntax metacharacters.
             ((char=? #\\ (string-ref syntax 0))
              (begin
                (if (= (string-length syntax) 1)
                    (parse-error context "syntax-break-out: missing char after '\\' in " syntax))
                (set! result (cons (substring syntax 1 2) result))
                (set! syntax (string-drop 2 syntax))))
-               ; Handle operand reference
+               ; Handle operand reference.
             ((char=? #\$ (string-ref syntax 0))
              ; Extract the symbol from the string, get the operand.
+             ; FIXME: Will crash if $ is last char in string.
              (if (char=? #\{ (string-ref syntax 1))
                  (let ((n (string-index syntax #\})))
                    (set! result (cons (current-op-lookup
                                         (substring syntax 1 (+ 1 n))))
                                       result))
                    (set! syntax (string-drop (+ 1 n) syntax)))))
-            ; Handle everything else
+            ; Handle everything else.
             (else (set! result (cons (substring syntax 0 1) result))
                   (set! syntax (string-drop1 syntax))))
            (loop))))
This page took 0.025289 seconds and 5 git commands to generate.