]> thyrsus.com Git - mad.git/commitdiff
We compile maxfunc and hello now.
authorEric S. Raymond <esr@thyrsus,com>
Mon, 9 Feb 2004 10:31:48 +0000 (10:31 +0000)
committerEric S. Raymond <esr@thyrsus,com>
Mon, 9 Feb 2004 10:31:48 +0000 (10:31 +0000)
mad

diff --git a/mad b/mad
index 0cc3815bd794881db3821d30461fe8965c92c979..6d5ea5500f3189b585f82c8df6044d657ff8c8e4 100755 (executable)
--- a/mad
+++ b/mad
@@ -107,11 +107,19 @@ scopes = []
 targets = {}
 headers = []
 funcnames = []
+typedict = {}
 arraydepths = {}
 returntypes = {}
 
-currentfunc = 'main.'
-typedict = {'main.':{}}
+def initfunc(f):
+    global currentfunc
+    currentfunc = f
+    typedict[currentfunc] = {}
+    arraydepths[currentfunc] = {}
+    funcnames.append(currentfunc)
+
+initfunc("main.")
+returntypes['main.'] = 'int'
 
 # Program level
 
@@ -173,11 +181,8 @@ def p_end_of_functions(t):
 def p_entry(t):
     "statement : ENTRY TO FUNCALL"
     global currentfunc
-    currentfunc = t[3]
+    initfunc(t[3])
     t[0] = ('entry', currentfunc)
-    typedict[currentfunc] = {}
-    arraydepths[currentfunc] = {}
-    funcnames.append(currentfunc)
 
 ## EXECUTE
 def p_execute(t):
@@ -430,6 +435,7 @@ def analyze():
             break
     if deck[i][3][0] != 'external_function':
         deck.insert(i, (deck[i][0], i, None, ('entry', 'main.',())))
+        
     else:
         for i in range(len(deck)):
             (file, line, label, statement) = deck[i]