Revert "Revert "Garbage collection, asset delivery, icon2html revolution, and…" (#15816)

This reverts commit f6d0f62622.
This commit is contained in:
Heroman3003
2024-04-22 06:29:01 +10:00
committed by GitHub
parent a2d91ee15e
commit c7b6c3e42b
251 changed files with 2361 additions and 1626 deletions
@@ -4,7 +4,7 @@
/n_Interpreter/proc/Eval(node/expression/exp)
if(istype(exp, /node/expression/FunctionCall))
return RunFunction(exp)
else if(istype(exp, /node/expression/operator))
else if(istype(exp, /node/expression/op))
return EvalOperator(exp)
else if(istype(exp, /node/expression/value/literal))
var/node/expression/value/literal/lit=exp
@@ -34,57 +34,57 @@
else
return exp
/n_Interpreter/proc/EvalOperator(node/expression/operator/exp)
if(istype(exp, /node/expression/operator/binary))
var/node/expression/operator/binary/bin=exp
/n_Interpreter/proc/EvalOperator(node/expression/op/exp)
if(istype(exp, /node/expression/op/binary))
var/node/expression/op/binary/bin=exp
switch(bin.type)
if(/node/expression/operator/binary/Equal)
if(/node/expression/op/binary/Equal)
return Equal(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/NotEqual)
if(/node/expression/op/binary/NotEqual)
return NotEqual(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/Greater)
if(/node/expression/op/binary/Greater)
return Greater(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/Less)
if(/node/expression/op/binary/Less)
return Less(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/GreaterOrEqual)
if(/node/expression/op/binary/GreaterOrEqual)
return GreaterOrEqual(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/LessOrEqual)
if(/node/expression/op/binary/LessOrEqual)
return LessOrEqual(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/LogicalAnd)
if(/node/expression/op/binary/LogicalAnd)
return LogicalAnd(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/LogicalOr)
if(/node/expression/op/binary/LogicalOr)
return LogicalOr(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/LogicalXor)
if(/node/expression/op/binary/LogicalXor)
return LogicalXor(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/BitwiseAnd)
if(/node/expression/op/binary/BitwiseAnd)
return BitwiseAnd(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/BitwiseOr)
if(/node/expression/op/binary/BitwiseOr)
return BitwiseOr(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/BitwiseXor)
if(/node/expression/op/binary/BitwiseXor)
return BitwiseXor(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/Add)
if(/node/expression/op/binary/Add)
return Add(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/Subtract)
if(/node/expression/op/binary/Subtract)
return Subtract(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/Multiply)
if(/node/expression/op/binary/Multiply)
return Multiply(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/Divide)
if(/node/expression/op/binary/Divide)
return Divide(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/Power)
if(/node/expression/op/binary/Power)
return Power(Eval(bin.exp), Eval(bin.exp2))
if(/node/expression/operator/binary/Modulo)
if(/node/expression/op/binary/Modulo)
return Modulo(Eval(bin.exp), Eval(bin.exp2))
else
RaiseError(new/runtimeError/UnknownInstruction())
return
switch(exp.type)
if(/node/expression/operator/unary/Minus)
if(/node/expression/op/unary/Minus)
return Minus(Eval(exp.exp))
if(/node/expression/operator/unary/LogicalNot)
if(/node/expression/op/unary/LogicalNot)
return LogicalNot(Eval(exp.exp))
if(/node/expression/operator/unary/BitwiseNot)
if(/node/expression/op/unary/BitwiseNot)
return BitwiseNot(Eval(exp.exp))
if(/node/expression/operator/unary/group)
if(/node/expression/op/unary/group)
return Eval(exp.exp)
else
RaiseError(new/runtimeError/UnknownInstruction())
@@ -164,4 +164,4 @@
//Unary//
/n_Interpreter/proc/Minus(a) return -a
/n_Interpreter/proc/LogicalNot(a) return !a
/n_Interpreter/proc/BitwiseNot(a) return ~a
/n_Interpreter/proc/BitwiseNot(a) return ~a