mescc: Rename symbols to globals.
[mes.git] / module / mes / elf-util.mes
index 3231e7b041818af9834b192bd96d82f5971f2ac9..afe153315caed8a836ca1e226ff2d8170397ff64 100644 (file)
@@ -1,7 +1,7 @@
 ;;; -*-scheme-*-
 
 ;;; Mes --- Maxwell Equations of Software
-;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016,2017 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of Mes.
 ;;;
 (define (data-entry? x)
   (data-symbol? (cdr x)))
 
-(define (symbols->functions symbols)
-  (append-map cdr (filter function-symbol? (map cdr symbols))))
+(define (globals->functions globals)
+  (append-map cdr (filter function-symbol? (map cdr globals))))
 
-(define (symbols->text symbols t d)
-  (append-map (lambda (f) (f symbols t d)) (symbols->functions symbols)))
+(define (globals->text globals t d)
+  (let loop ((functions (globals->functions globals)) (text '()))
+    (if (null? functions) text
+        (loop (cdr functions)
+              (append text ((car functions) globals (- (length text)) d))))))
 
-(define (function-offset name symbols)
-  (let* ((functions (filter function-entry? symbols))
+(define (function-offset name globals)
+  (let* ((functions (filter function-entry? globals))
          (prefix (member name (reverse functions)
                          (lambda (a b)
                            (equal? (car b) name)))))
-    (if prefix (length (symbols->text (cdr prefix) 0 0))
+    (if prefix (length (globals->text (cdr prefix) 0 0))
         0)))
 
-(define (data-offset name symbols)
-  (let* ((globals (filter data-entry? symbols))
+(define (data-offset name globals)
+  (let* ((globals (filter data-entry? globals))
          (prefix (member name (reverse globals)
                          (lambda (a b)
                            (equal? (car b) name)))))
-    (if prefix (length (symbols->data (cdr prefix)))
+    (if prefix (length (globals->data (cdr prefix)))
         0)))
 
-(define (symbols->data symbols)
-  (append-map cdr (filter data-symbol? (map cdr symbols))))
+(define (globals->data globals)
+  (append-map cdr (filter data-symbol? (map cdr globals))))