X-Git-Url: https://code.kerkeslager.com/?p=fur;a=blobdiff_plain;f=generation.py;h=56bd0a53c9f234615fdcf348d0d6b8fd5cab7cab;hp=9962bf3c1ec3ae905481c0b0ca6d5a587fabe1c1;hb=c40954b865b48ffa4993f735d56213fb91c3e90e;hpb=2b8b0fd7071b4a829253e7564289aa179b9a47d9 diff --git a/generation.py b/generation.py index 9962bf3..56bd0a5 100644 --- a/generation.py +++ b/generation.py @@ -1,12 +1,17 @@ import jinja2 +import transformation + ENV = jinja2.Environment( autoescape=jinja2.select_autoescape([]), loader=jinja2.FileSystemLoader('templates'), trim_blocks=True, ) -def generate_argument(c_string_literal): +def generate_integer_literal(c_integer_literal): + return 'integerLiteral({})'.format(c_integer_literal.value) + +def generate_string_literal(c_string_literal): def c_escape(ch): return { '\n': r'\n', @@ -18,6 +23,12 @@ def generate_argument(c_string_literal): ''.join(c_escape(ch for ch in c_string_literal.value)), ) +def generate_argument(c_argument): + return { + transformation.CIntegerLiteral: generate_integer_literal, + transformation.CStringLiteral: generate_string_literal, + }[type(c_argument)](c_argument) + def generate_statement(c_function_call_statement): return '{}({});'.format( c_function_call_statement.name,