nyacc: minor cpp fixes
[mes.git] / module / nyacc / lang / c99 / body.scm
index 511b7d34bb619af3a9b77895fb9f3dcc804f1f16..35298d0177ecd9d608dae182478d8088e761454d 100644 (file)
          (define (rem-define name)
              (set-cpi-defs! info (delete name (cpi-defs info))))
          
+         (define (apply-helper file)
+           (let* ((tyns (assoc-ref (cpi-itynd info) file))
+                  (defs (assoc-ref (cpi-idefd info) file)))
+             (when tyns
+               (for-each add-typename tyns)
+               (set-cpi-defs! info (append defs (cpi-defs info))))
+             tyns))
+         
          ;; Evaluate expression text in #if of #elif statement.
          (define (eval-cpp-cond-text text)
            (with-throw-handler
               (if (eqv? 'keep (car ppxs))
                   (eval-cpp-stmt-2/code stmt)))))
 
-         (define (apply-helper file)
-           (let* ((tyns (assoc-ref (cpi-itynd info) file))
-                  (defs (assoc-ref (cpi-idefd info) file)))
-             (when tyns
-               (for-each add-typename tyns)
-               (set-cpi-defs! info (append defs (cpi-defs info))))
-             (pair? tyns)))
-         
          (define (eval-cpp-stmt-2/code stmt)
            ;; eval non-control flow
            (case (car stmt)
                 (cond
                  ((apply-helper file)) ; use helper
                  ((not path) (p-err "not found: ~S" file)) ; file not found
-                 (else (push-input (open-input-file path))))))
+                 (else (set! bol #t) (push-input (open-input-file path))))))
              ((define) (add-define stmt))
              ((undef) (rem-define (cadr stmt)))
              ((error) (p-err "error: #error ~A" (cadr stmt)))