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'
return {
'add': generate_null_argument_from(2),
'call': generate_size_t_argument,
+ 'close': generate_label_argument,
'drop': generate_null_argument,
'end': generate_null_argument,
'eq': generate_null_argument_from(2),
'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),
'push': generate_symbol_argument,
'push_integer': generate_integer_argument,
'push_string': generate_string_argument,
+ 'return': generate_null_argument,
'sub': generate_null_argument_from(2),
}[instruction.instruction](instruction.argument)