X-Git-Url: https://code.kerkeslager.com/?p=fur;a=blobdiff_plain;f=normalization.py;h=51c1d7bd2b9dbe614c6a63d2283690aa84b991fe;hp=a9fa3ec9f29a46c0c19cd5e4a60d7a66ee28fa2a;hb=51b6cd6152e6311805b55e847ae9eb60f5c7c471;hpb=777a46709a4353837a34df7fc0f7d9f3d47902a7 diff --git a/normalization.py b/normalization.py index a9fa3ec..51c1d7b 100644 --- a/normalization.py +++ b/normalization.py @@ -24,6 +24,13 @@ NormalStringLiteralExpression = collections.namedtuple( ], ) +NormalSymbolExpression = collections.namedtuple( + 'NormalSymbolExpression', + [ + 'symbol', + ], +) + NormalNegationExpression = collections.namedtuple( 'NormalNegationExpression', [ @@ -114,16 +121,21 @@ NormalProgram = collections.namedtuple( ], ) -# TODO Get rid of this def fake_normalization(counter, thing): return (counter, (), thing) def normalize_integer_literal_expression(counter, expression): + # TODO Store this in a C variable return (counter, (), NormalIntegerLiteralExpression(integer=expression.integer)) def normalize_string_literal_expression(counter, expression): + # TODO Store this in a C variable return (counter, (), NormalStringLiteralExpression(string=expression.string)) +def normalize_symbol_expression(counter, expression): + # TODO Store this in a C variable + return (counter, (), NormalSymbolExpression(symbol=expression.symbol)) + def normalize_function_call_expression(counter, expression): assert isinstance(expression, parsing.FurFunctionCallExpression) @@ -331,7 +343,7 @@ def normalize_expression(counter, expression): parsing.FurIntegerLiteralExpression: normalize_integer_literal_expression, parsing.FurNegationExpression: normalize_negation_expression, parsing.FurStringLiteralExpression: normalize_string_literal_expression, - parsing.FurSymbolExpression: fake_normalization, + parsing.FurSymbolExpression: normalize_symbol_expression, }[type(expression)](counter, expression) def normalize_expression_statement(counter, statement):