mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-23 03:57:48 +01:00
Garbage collection, asset delivery, icon2html revolution, and general fixes (515) (#15739)
* Making it compileable
* Adds Tracy & Fixed missing compat in sorting code
* CI workflow using "Stable" beta version
* Tracy define
* Fixes
* Update GC from TGStation
* fixes
* Appease linter
* begone custom_items.txt
* Making it compileable
* Adds Tracy & Fixed missing compat in sorting code
* CI workflow using "Stable" beta version
* Tracy define
* Fixes
* Build dependencies at 514
* Asset delivery/GC/515 megapatch
* fix runtime
* Appease integration tests
* More runtime fixes
* Attempting to resolve runtime
* Update spacemanDMM
* icon2html revolution
* icon2html part 2
* fixes
* Attempt to appease linter
* More fixes
* Final fixes (hopefully)
* operator keyword moment
* minor fixes and additions
* undo extra tgui files
* switch to QDEL_IN_STOPPABLE where necessary
* Pain
* GPS runtime
* dropped(null) fix, + chompedit the fixes just incase.
* Fix chat tags
* Update _build_dependencies.sh
* runtime in orebag, duplicate in computer/ship/proc/look, runtime in zoom
* tweak zoom change
* another registersignal override runtime
* 1
* Revert "1"
This reverts commit 43f619ca6c216c2bc41b8f7a346069f99591261b.
* various qdel ref fixes
* newplayer and observer harddels
* disposalholder logging remove, gargoyle hard del + typo
* retouch atom/movable destroy to be TG-like
* potential edge case ref in manualfollow
* extra following potential ref
* global list refs tweak, new_player undo a thing
* /mob/new_player qdel fixes
* undo some things
* revert atoms/movable/destroy
* revert mind and new_player panel changes
* atoms and atom/movable reversions
* bring back datum/mind and panel fixes
* projectile optimisation
* Reverts useless edits, clothing hood runtime, projectile runtime
I tried a lot of things which do not help, and i reverted a lot of it here.
* a few more reversions of useless changes
* Begin getting rid of CHOMPedit comments
* Nuke remaining chompedit comments
* Revert "undo extra tgui files"
This reverts commit f3bdcde8cb.
* fixing oops
* line ending shenanigans
* More GC cleanup
* Optimisations to test/trace projectile, turrets. Tweaks.
Turrets now only trace when they are absolutely sure they want to shoot. disposalholder, effect master and artefact qdel refs changes.
* bad usage of the check_trajectory proc
check_trajectory returns a list of objects hit along it's path to it's target, not a boolean of the target being hittable. a couple places in code assume this, so here they are fixed.
* puts legacy globals into GLOB datum for debug use
* fix upport oopsie
* fix
* Move recursive listening to component
* Minor fixes and cleanup
* undo my temp solution
* tweaks + a missed thing
* recursive_move sanity checks and safety cases
* Catch null initialisation cases + fix borg creation
VV edit spawns the object in nullspace then directly sets it's loc, which means the movement is unregistered. The spawn(0) delay should hopefully mean that setup_parents happens AFTER any unregistered movement.
* circular inventory check, make checks better
* better handling of safety reset cases
* Add logging to safety checks
---------
Co-authored-by: Selis <selis@xynolabs.com>
Co-authored-by: Selis <sirlionfur@hotmail.de>
Co-authored-by: Raeschen <rycoop29@gmail.com>
This commit is contained in:
co-authored by
Selis
Selis
Raeschen
parent
6925bceabc
commit
cc05d51b69
@@ -64,16 +64,16 @@ var
|
||||
Class: operator
|
||||
See <Binary Operators> and <Unary Operators> for subtypes.
|
||||
*/
|
||||
/node/expression/operator
|
||||
/node/expression/op
|
||||
var/node/expression/exp
|
||||
var/tmp/name
|
||||
var/tmp/precedence
|
||||
|
||||
/node/expression/operator/New()
|
||||
/node/expression/op/New()
|
||||
.=..()
|
||||
if(!src.name) src.name="[src.type]"
|
||||
|
||||
/node/expression/operator/ToString()
|
||||
/node/expression/op/ToString()
|
||||
return "operator: [name]"
|
||||
|
||||
/*
|
||||
@@ -125,4 +125,4 @@ var
|
||||
src.value=value
|
||||
|
||||
/node/expression/value/reference/ToString()
|
||||
return "ref: [src.value] ([src.value.type])"
|
||||
return "ref: [src.value] ([src.value.type])"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
Class: binary
|
||||
Represents a binary operator in the AST. A binary operator takes two operands (ie x and y) and returns a value.
|
||||
*/
|
||||
/node/expression/operator/binary
|
||||
/node/expression/op/binary
|
||||
var/node/expression/exp2
|
||||
|
||||
////////// Comparison Operators //////////
|
||||
@@ -16,7 +16,7 @@
|
||||
Returns true if x = y.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/Equal
|
||||
/node/expression/op/binary/Equal
|
||||
precedence=OOP_EQUAL
|
||||
|
||||
/*
|
||||
@@ -24,7 +24,7 @@
|
||||
Returns true if x and y aren't equal.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/NotEqual
|
||||
/node/expression/op/binary/NotEqual
|
||||
precedence=OOP_EQUAL
|
||||
|
||||
/*
|
||||
@@ -32,7 +32,7 @@
|
||||
Returns true if x > y.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/Greater
|
||||
/node/expression/op/binary/Greater
|
||||
precedence=OOP_COMPARE
|
||||
|
||||
/*
|
||||
@@ -40,7 +40,7 @@
|
||||
Returns true if x < y.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/Less
|
||||
/node/expression/op/binary/Less
|
||||
precedence=OOP_COMPARE
|
||||
|
||||
/*
|
||||
@@ -48,7 +48,7 @@
|
||||
Returns true if x >= y.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/GreaterOrEqual
|
||||
/node/expression/op/binary/GreaterOrEqual
|
||||
precedence=OOP_COMPARE
|
||||
|
||||
/*
|
||||
@@ -56,7 +56,7 @@
|
||||
Returns true if x <= y.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/LessOrEqual
|
||||
/node/expression/op/binary/LessOrEqual
|
||||
precedence=OOP_COMPARE
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
Returns true if x and y are true.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/LogicalAnd
|
||||
/node/expression/op/binary/LogicalAnd
|
||||
precedence=OOP_AND
|
||||
|
||||
/*
|
||||
@@ -75,7 +75,7 @@
|
||||
Returns true if x, y, or both are true.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/LogicalOr
|
||||
/node/expression/op/binary/LogicalOr
|
||||
precedence=OOP_OR
|
||||
|
||||
/*
|
||||
@@ -83,7 +83,7 @@
|
||||
Returns true if either x or y but not both are true.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/LogicalXor //Not implemented in nS
|
||||
/node/expression/op/binary/LogicalXor //Not implemented in nS
|
||||
precedence=OOP_OR
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
011 & 110 = 010
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/BitwiseAnd
|
||||
/node/expression/op/binary/BitwiseAnd
|
||||
precedence=OOP_BIT
|
||||
|
||||
/*
|
||||
@@ -108,7 +108,7 @@
|
||||
011 | 110 = 111
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/BitwiseOr
|
||||
/node/expression/op/binary/BitwiseOr
|
||||
precedence=OOP_BIT
|
||||
|
||||
/*
|
||||
@@ -119,7 +119,7 @@
|
||||
011 xor 110 = 101
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/BitwiseXor
|
||||
/node/expression/op/binary/BitwiseXor
|
||||
precedence=OOP_BIT
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
Returns the sum of x and y.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/Add
|
||||
/node/expression/op/binary/Add
|
||||
precedence=OOP_ADD
|
||||
|
||||
/*
|
||||
@@ -138,7 +138,7 @@
|
||||
Returns the difference of x and y.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/Subtract
|
||||
/node/expression/op/binary/Subtract
|
||||
precedence=OOP_ADD
|
||||
|
||||
/*
|
||||
@@ -146,7 +146,7 @@
|
||||
Returns the product of x and y.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/Multiply
|
||||
/node/expression/op/binary/Multiply
|
||||
precedence=OOP_MULTIPLY
|
||||
|
||||
/*
|
||||
@@ -154,7 +154,7 @@
|
||||
Returns the quotient of x and y.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/Divide
|
||||
/node/expression/op/binary/Divide
|
||||
precedence=OOP_MULTIPLY
|
||||
|
||||
/*
|
||||
@@ -162,7 +162,7 @@
|
||||
Returns x raised to the power of y.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/Power
|
||||
/node/expression/op/binary/Power
|
||||
precedence=OOP_POW
|
||||
|
||||
/*
|
||||
@@ -170,5 +170,5 @@
|
||||
Returns the remainder of x / y.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/binary/Modulo
|
||||
/node/expression/op/binary/Modulo
|
||||
precedence=OOP_MULTIPLY
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
Class: unary
|
||||
Represents a unary operator in the AST. Unary operators take a single operand (referred to as x below) and return a value.
|
||||
*/
|
||||
/node/expression/operator/unary
|
||||
/node/expression/op/unary
|
||||
precedence=OOP_UNARY
|
||||
|
||||
/*
|
||||
@@ -16,7 +16,7 @@
|
||||
!true = false and !false = true
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/unary/LogicalNot
|
||||
/node/expression/op/unary/LogicalNot
|
||||
name="logical not"
|
||||
|
||||
/*
|
||||
@@ -27,7 +27,7 @@
|
||||
~10 (decimal 2) = 01 (decimal 1).
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/unary/BitwiseNot
|
||||
/node/expression/op/unary/BitwiseNot
|
||||
name="bitwise not"
|
||||
|
||||
/*
|
||||
@@ -35,7 +35,7 @@
|
||||
Returns -x.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/unary/Minus
|
||||
/node/expression/op/unary/Minus
|
||||
name="minus"
|
||||
|
||||
/*
|
||||
@@ -43,9 +43,9 @@
|
||||
A special unary operator representing a value in parentheses.
|
||||
*/
|
||||
//
|
||||
/node/expression/operator/unary/group
|
||||
/node/expression/op/unary/group
|
||||
precedence=OOP_GROUP
|
||||
|
||||
/node/expression/operator/unary/New(node/expression/exp)
|
||||
/node/expression/op/unary/New(node/expression/exp)
|
||||
src.exp=exp
|
||||
return ..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -70,31 +70,31 @@ associated values are <nS_Keyword> types of which the <n_Keyword.Parse()> proc w
|
||||
)
|
||||
|
||||
var/list/unary_operators =list(
|
||||
"!" = /node/expression/operator/unary/LogicalNot,
|
||||
"~" = /node/expression/operator/unary/BitwiseNot,
|
||||
"-" = /node/expression/operator/unary/Minus
|
||||
"!" = /node/expression/op/unary/LogicalNot,
|
||||
"~" = /node/expression/op/unary/BitwiseNot,
|
||||
"-" = /node/expression/op/unary/Minus
|
||||
)
|
||||
|
||||
var/list/binary_operators=list(
|
||||
"==" = /node/expression/operator/binary/Equal,
|
||||
"!=" = /node/expression/operator/binary/NotEqual,
|
||||
">" = /node/expression/operator/binary/Greater,
|
||||
"<" = /node/expression/operator/binary/Less,
|
||||
">=" = /node/expression/operator/binary/GreaterOrEqual,
|
||||
"<=" = /node/expression/operator/binary/LessOrEqual,
|
||||
"&&" = /node/expression/operator/binary/LogicalAnd,
|
||||
"||" = /node/expression/operator/binary/LogicalOr,
|
||||
"&" = /node/expression/operator/binary/BitwiseAnd,
|
||||
"|" = /node/expression/operator/binary/BitwiseOr,
|
||||
"`" = /node/expression/operator/binary/BitwiseXor,
|
||||
"+" = /node/expression/operator/binary/Add,
|
||||
"-" = /node/expression/operator/binary/Subtract,
|
||||
"*" = /node/expression/operator/binary/Multiply,
|
||||
"/" = /node/expression/operator/binary/Divide,
|
||||
"^" = /node/expression/operator/binary/Power,
|
||||
"%" = /node/expression/operator/binary/Modulo)
|
||||
"==" = /node/expression/op/binary/Equal,
|
||||
"!=" = /node/expression/op/binary/NotEqual,
|
||||
">" = /node/expression/op/binary/Greater,
|
||||
"<" = /node/expression/op/binary/Less,
|
||||
">=" = /node/expression/op/binary/GreaterOrEqual,
|
||||
"<=" = /node/expression/op/binary/LessOrEqual,
|
||||
"&&" = /node/expression/op/binary/LogicalAnd,
|
||||
"||" = /node/expression/op/binary/LogicalOr,
|
||||
"&" = /node/expression/op/binary/BitwiseAnd,
|
||||
"|" = /node/expression/op/binary/BitwiseOr,
|
||||
"`" = /node/expression/op/binary/BitwiseXor,
|
||||
"+" = /node/expression/op/binary/Add,
|
||||
"-" = /node/expression/op/binary/Subtract,
|
||||
"*" = /node/expression/op/binary/Multiply,
|
||||
"/" = /node/expression/op/binary/Divide,
|
||||
"^" = /node/expression/op/binary/Power,
|
||||
"%" = /node/expression/op/binary/Modulo)
|
||||
|
||||
/n_scriptOptions/nS_Options/New()
|
||||
.=..()
|
||||
for(var/O in assign_operators+binary_operators+unary_operators)
|
||||
if(!symbols.Find(O)) symbols+=O
|
||||
if(!symbols.Find(O)) symbols+=O
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
Proc: Precedence
|
||||
Compares two operators, decides which is higher in the order of operations, and returns <SHIFT> or <REDUCE>.
|
||||
*/
|
||||
/n_Parser/nS_Parser/proc/Precedence(node/expression/operator/top, node/expression/operator/input)
|
||||
/n_Parser/nS_Parser/proc/Precedence(node/expression/op/top, node/expression/op/input)
|
||||
if(istype(top))
|
||||
top=top.precedence
|
||||
if(istype(input))
|
||||
@@ -88,7 +88,7 @@ See Also:
|
||||
- <GetBinaryOperator()>
|
||||
- <GetUnaryOperator()>
|
||||
*/
|
||||
/n_Parser/nS_Parser/proc/GetOperator(O, type=/node/expression/operator, L[])
|
||||
/n_Parser/nS_Parser/proc/GetOperator(O, type=/node/expression/op, L[])
|
||||
if(istype(O, type)) return O //O is already the desired type
|
||||
if(istype(O, /token)) O=O:value //sets O to text
|
||||
if(istext(O)) //sets O to path
|
||||
@@ -108,7 +108,7 @@ See Also:
|
||||
- <GetUnaryOperator()>
|
||||
*/
|
||||
/n_Parser/nS_Parser/proc/GetBinaryOperator(O)
|
||||
return GetOperator(O, /node/expression/operator/binary, options.binary_operators)
|
||||
return GetOperator(O, /node/expression/op/binary, options.binary_operators)
|
||||
|
||||
/*
|
||||
Proc: GetUnaryOperator
|
||||
@@ -120,7 +120,7 @@ See Also:
|
||||
- <GetBinaryOperator()>
|
||||
*/
|
||||
/n_Parser/nS_Parser/proc/GetUnaryOperator(O)
|
||||
return GetOperator(O, /node/expression/operator/unary, options.unary_operators)
|
||||
return GetOperator(O, /node/expression/op/unary, options.unary_operators)
|
||||
|
||||
/*
|
||||
Proc: Reduce
|
||||
@@ -128,15 +128,15 @@ Takes the operator on top of the opr stack and assigns its operand(s). Then this
|
||||
of the val stack.
|
||||
*/
|
||||
/n_Parser/nS_Parser/proc/Reduce(stack/opr, stack/val)
|
||||
var/node/expression/operator/O=opr.Pop()
|
||||
var/node/expression/op/O=opr.Pop()
|
||||
if(!O) return
|
||||
if(!istype(O))
|
||||
errors+=new/scriptError("Error reducing expression - invalid operator.")
|
||||
return
|
||||
//Take O and assign its operands, popping one or two values from the val stack
|
||||
//depending on whether O is a binary or unary operator.
|
||||
if(istype(O, /node/expression/operator/binary))
|
||||
var/node/expression/operator/binary/B=O
|
||||
if(istype(O, /node/expression/op/binary))
|
||||
var/node/expression/op/binary/B=O
|
||||
B.exp2=val.Pop()
|
||||
B.exp =val.Pop()
|
||||
val.Push(B)
|
||||
@@ -203,7 +203,7 @@ See Also:
|
||||
continue
|
||||
val.Push(ParseParenExpression())
|
||||
else if(istype(curToken, /token/symbol)) //Operator found.
|
||||
var/node/expression/operator/curOperator //Figure out whether it is unary or binary and get a new instance.
|
||||
var/node/expression/op/curOperator //Figure out whether it is unary or binary and get a new instance.
|
||||
if(src.expecting==OPERATOR)
|
||||
curOperator=GetBinaryOperator(curToken)
|
||||
if(!curOperator)
|
||||
@@ -297,7 +297,7 @@ See Also:
|
||||
/n_Parser/nS_Parser/proc/ParseParenExpression()
|
||||
if(!CheckToken("(", /token/symbol))
|
||||
return
|
||||
return new/node/expression/operator/unary/group(ParseExpression(list(")")))
|
||||
return new/node/expression/op/unary/group(ParseExpression(list(")")))
|
||||
|
||||
/*
|
||||
Proc: ParseParamExpression
|
||||
@@ -307,4 +307,4 @@ See Also:
|
||||
- <ParseExpression()>
|
||||
*/
|
||||
/n_Parser/nS_Parser/proc/ParseParamExpression()
|
||||
return ParseExpression(list(",", ")"))
|
||||
return ParseExpression(list(",", ")"))
|
||||
|
||||
Reference in New Issue
Block a user