From c3880a0bdad79989c1d8d463205e1a8d423f0edd Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Mon, 9 Feb 2004 22:45:51 +0000 Subject: [PATCH] Handle Boolean literals correctly. --- mad | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mad b/mad index 7f4916a..78ce5d0 100755 --- a/mad +++ b/mad @@ -47,7 +47,6 @@ t_EQUALS = r'=' t_LPAREN = r'\(' t_RPAREN = r'\)' t_STRING = r'\$[^$]*\$' -t_BOOLNUM = r'[01]B' reserved_map = { } for r in reserved: @@ -67,6 +66,11 @@ def t_FLOATNUM(t): t.value += "0" return t +def t_BOOLNUM(t): + r'[01]B' + t.value = int(t.value[0]) + return t + def t_INTNUM(t): r'\d+' # Leading zeros flip us into octal in C, therefore strip them. @@ -374,6 +378,10 @@ def p_expression_group(t): 'expression : LPAREN expression RPAREN' t[0] = t[2] +def p_expression_bool(t): + 'expression : BOOLNUM' + t[0] = ('boolnum', t[1]) + def p_expression_integer(t): 'expression : INTNUM' t[0] = ('intnum', t[1]) @@ -382,10 +390,6 @@ def p_expression_float(t): 'expression : FLOATNUM' t[0] = ('floatnum', t[1]) -def p_expression_bool(t): - 'expression : BOOLNUM' - t[0] = ('boolnum', t[1]) - def p_expression_subscript(t): 'expression : NAME application' t[0] = ('variable', t[1], tuple(t[2])) -- 2.43.0