]> thyrsus.com Git - mad.git/commitdiff
Code rearrangement.
authorEric S. Raymond <esr@thyrsus,com>
Tue, 10 Feb 2004 01:52:45 +0000 (01:52 +0000)
committerEric S. Raymond <esr@thyrsus,com>
Tue, 10 Feb 2004 01:52:45 +0000 (01:52 +0000)
mad

diff --git a/mad b/mad
index 78ce5d05cd80c6ce0b2d6e4f635222d6db68f678..4f495443420c42a0b53ab617813f7e444d285d6a 100755 (executable)
--- a/mad
+++ b/mad
@@ -68,7 +68,7 @@ def t_FLOATNUM(t):
 
 def t_BOOLNUM(t):
     r'[01]B'
-    t.value = int(t.value[0])
+    t.value = (int(t.value[0]) == 1)
     return t
 
 def t_INTNUM(t):
@@ -769,8 +769,16 @@ def print_statement(statement):
     elif statement[0] == 'internal':
         return '    %s %s {return %s;}' % \
                       (returntypes.get(statement[1], normalmode), print_expr(('apply', statement[1], statement[2])), print_expr(statement[3]))
+    elif statement[0] == 'otherwise':
+        return 'else {'
     elif statement[0] == 'pause':
         return('printf("%o", ' + print_expr(statement[1]) + '); getchar();')
+    elif statement[0] == 'print':
+        (fmt, types) = fmt_convert(format[statement[1]])
+        if len(statement) < 3:
+            return 'printf("' + fmt + '");'
+        else:
+            return 'printf("' + fmt + '", ' + ', '.join(map(print_expr, statement[2:])) + ');'
     elif statement[0] == 'read':
         (fmt, types) = fmt_convert(format[statement[1]], write=False)
         return 'scanf("' + fmt + '", ' + ', '.join(map(lambda x: '&'+x, statement[2:])) + ');'
@@ -786,14 +794,6 @@ def print_statement(statement):
             return "return %s;" % print_expr(statement[1])
     elif statement[0] == 'or':
         return 'else if (' + print_expr(statement[2]) + ') {'
-    elif statement[0] == 'otherwise':
-        return 'else {'
-    elif statement[0] == 'print':
-        (fmt, types) = fmt_convert(format[statement[1]])
-        if len(statement) < 3:
-            return 'printf("' + fmt + '");'
-        else:
-            return 'printf("' + fmt + '", ' + ', '.join(map(print_expr, statement[2:])) + ');'
     elif statement[0] == 'substitution':
         return statement[1] + ' = ' + print_expr(statement[2]) + ';'
     elif statement[0] == 'whenever':