Browse Source

Print needs to be special

master
Raphael Roberts 5 years ago
parent
commit
9a9e753a9a
  1. 9
      c2logic/compiler.py
  2. 2
      c2logic/instruction_definition.c

9
c2logic/compiler.py

@ -449,7 +449,14 @@ class Compiler(c_ast.NodeVisitor):
else:
args = []
#TODO avoid duplication in builtin calls
if name == "asm":
if name == "print":
argnames = self.get_multiple_builtin_args(args, name)
self.push(PARSED_INSTRUCTIONS[name](*argnames))
for argname in argnames:
if argname.startswith(f"__{name}_arg"):
self.delete_special_var(argname)
elif name == "asm":
arg = args[0]
if not isinstance(arg, Constant) or arg.type != "string":
raise TypeError("Non-string argument to asm", node)

2
c2logic/instruction_definition.c

@ -1,7 +1,7 @@
struct MindustryObject {};
// builtin instructions
void print(char* s) {
asm("print \"{s}\"");
asm("print {s}");
}
void printd(double s) {
asm("print {s}");

Loading…
Cancel
Save