Daily update on 20250318-203619 by Nitload Youmu. Additional Message : Syntax analyzer rebuilding, a neet and flexible structure introduced
Signed-off-by: Nitload <YoumuLiu_NSI@whv0t.onmicrosoft.com>
This commit is contained in:
@@ -147,6 +147,23 @@ namespace StgSharp.Script.Express
|
||||
};
|
||||
}
|
||||
|
||||
public static ExpBinaryOperatorNode LessThan(
|
||||
Token source,
|
||||
ExpNode left,
|
||||
ExpNode right )
|
||||
{
|
||||
if( !left.IsNumber && !right.IsNumber ) {
|
||||
throw new ExpInvalidTypeException(
|
||||
"Number", left.EqualityTypeConvert.Name );
|
||||
}
|
||||
return new ExpBinaryOperatorNode( source )
|
||||
{
|
||||
_returnType = ExpCompile.ExpBool,
|
||||
_nodeFlag = ExpNodeFlag.BuiltinType_Boolean | ExpNodeFlag.Operator_Binary,
|
||||
CodeConvertTemplate = "{0} < {1}",
|
||||
};
|
||||
}
|
||||
|
||||
public static ExpBinaryOperatorNode Mul(
|
||||
Token source,
|
||||
ExpNode left,
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace StgSharp.Script.Express
|
||||
public class ExpElementMemberNameNode : ExpNode
|
||||
{
|
||||
|
||||
public ExpElementMemberNameNode( Token source )
|
||||
internal ExpElementMemberNameNode( Token source )
|
||||
: base( source )
|
||||
{
|
||||
_nodeFlag = ExpNodeFlag.Name_Operator;
|
||||
@@ -62,5 +62,10 @@ namespace StgSharp.Script.Express
|
||||
}
|
||||
}
|
||||
|
||||
public static ExpElementMemberNameNode Create( Token t )
|
||||
{
|
||||
return new ExpElementMemberNameNode( t );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@@ -39,11 +40,11 @@ namespace StgSharp.Script.Express
|
||||
public class ExpInstanceReferenceNode : ExpNode
|
||||
{
|
||||
|
||||
private ExpElementInstanceBase _instance;
|
||||
private ExpElementInstanceNode _instance;
|
||||
|
||||
public ExpInstanceReferenceNode(
|
||||
Token source,
|
||||
ExpElementInstanceBase instance )
|
||||
internal ExpInstanceReferenceNode(
|
||||
Token source,
|
||||
ExpElementInstanceNode instance )
|
||||
: base( source )
|
||||
{
|
||||
_instance = instance;
|
||||
@@ -56,5 +57,13 @@ namespace StgSharp.Script.Express
|
||||
|
||||
public override IExpElementSource EqualityTypeConvert => _instance.EqualityTypeConvert;
|
||||
|
||||
[MethodImpl( MethodImplOptions.AggressiveInlining )]
|
||||
public static ExpInstanceReferenceNode Create(
|
||||
Token source,
|
||||
ExpElementInstanceNode instance )
|
||||
{
|
||||
return new ExpInstanceReferenceNode( source, instance );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user