X-Git-Url: https://code.kerkeslager.com/?p=fur;a=blobdiff_plain;f=c_generation.py;h=821048f7127c6d30e51d74170f949e957ae4f61c;hp=a1e4e599ad0911dd6cf6612dd25c0156b1dc746c;hb=4efcfd00920263da31dc2bb216050df4041299e7;hpb=edc05c8d2d465653c02c350592eff62c542a37ed diff --git a/c_generation.py b/c_generation.py index a1e4e59..821048f 100644 --- a/c_generation.py +++ b/c_generation.py @@ -22,6 +22,9 @@ def generate_integer_argument(argument): assert isinstance(argument, int) return '(int32_t){}'.format(argument) +def generate_label_argument(argument): + return 'LABEL_{}'.format(argument) + def generate_null_argument(argument): assert argument is None return 'NULL' @@ -55,6 +58,8 @@ def generate_argument(instruction): 'gt': generate_null_argument_from(2), 'gte': generate_null_argument_from(2), 'idiv': generate_null_argument_from(2), + 'jump': generate_label_argument, + 'jump_if_false': generate_label_argument, 'lt': generate_null_argument_from(2), 'lte': generate_null_argument_from(2), 'mod': generate_null_argument_from(2),