1
0

COLORを実�

This commit is contained in:
otya128
2015-07-11 22:21:48 +09:00
parent f10437449f
commit 7ad5c9ff3c
4 changed files with 167 additions and 28 deletions

View File

@@ -331,11 +331,19 @@ class Compiler
case NodeType.CallFunction:
{
auto func = cast(CallFunction)exp;
auto bfun = otya.smilebasic.builtinfunctions.BuiltinFunction.builtinFunctions.get(func.name, null);
if(bfun)
{
auto k = bfun.argments.length - func.args.length;
foreach(l;0..k)
{
genCodeImm(Value(ValueType.Void));
}
}
foreach_reverse(Expression i ; func.args)
{
compileExpression(i, sc);
}
auto bfun = otya.smilebasic.builtinfunctions.BuiltinFunction.builtinFunctions.get(func.name, null);
if(bfun)
{
genCode(new CallBuiltinFunction(bfun, func.args.length, 1));
@@ -602,11 +610,19 @@ class Compiler
case NodeType.CallFunctionStatement:
{
auto func = cast(CallFunctionStatement)i;
auto bfun = otya.smilebasic.builtinfunctions.BuiltinFunction.builtinFunctions.get(func.name, null);
if(bfun)
{
auto k = bfun.argments.length - func.args.length;
foreach(l;0..k)
{
genCodeImm(Value(ValueType.Void));
}
}
foreach_reverse(Expression j ; func.args)
{
compileExpression(j, s);
}
auto bfun = otya.smilebasic.builtinfunctions.BuiltinFunction.builtinFunctions.get(func.name, null);
if(bfun)
{
genCode(new CallBuiltinFunction(bfun, func.args.length, func.outVariable.length));