Daily update on 20250430-073804 by Nitload Youmu. Additional Message : full function of syntax analyze to STEP file

Signed-off-by: Nitload <YoumuLiu_NSI@whv0t.onmicrosoft.com>
This commit is contained in:
Nitload
2025-04-30 07:38:04 +08:00
parent a6411e2f25
commit 74c01effe4
52 changed files with 693 additions and 442 deletions
@@ -69,7 +69,8 @@ namespace StgSharp.Script.Express
ExpSyntaxNode right )
{
if( !left.IsNumber && !right.IsNumber ) {
throw new ExpInvalidTypeException( "Number", left.EqualityTypeConvert.Name );
throw new ExpInvalidTypeException( source, "Number",
left.EqualityTypeConvert.Name );
}
bool isFloat =
( left._nodeFlag | ExpNodeFlag.BuiltinType_Real ) == 0 || ( right._nodeFlag | ExpNodeFlag.BuiltinType_Real ) ==
@@ -89,7 +90,7 @@ namespace StgSharp.Script.Express
{
if( left.EqualityTypeConvert != right.EqualityTypeConvert ) {
throw new ExpInvalidTypeException(
left.EqualityTypeConvert.Name, right.EqualityTypeConvert.Name );
source, left.EqualityTypeConvert.Name, right.EqualityTypeConvert.Name );
}
return new ExpBinaryOperatorNode( source, left, right )
{
@@ -133,7 +134,7 @@ namespace StgSharp.Script.Express
{
if( right is not ExpMetaRefNode metaRef ) {
throw new ExpInvalidTypeException(
"<source of element>", right.EqualityTypeConvert.Name );
source, "<source of element>", right.EqualityTypeConvert.Name );
}
return new ExpBinaryOperatorNode( source, left, right )
{
@@ -153,7 +154,8 @@ namespace StgSharp.Script.Express
ExpSyntaxNode right )
{
if( !left.IsNumber && !right.IsNumber ) {
throw new ExpInvalidTypeException( "Number", left.EqualityTypeConvert.Name );
throw new ExpInvalidTypeException( source, "Number",
left.EqualityTypeConvert.Name );
}
bool isFloat =
( left._nodeFlag | ExpNodeFlag.BuiltinType_Real ) == 0 || ( right._nodeFlag | ExpNodeFlag.BuiltinType_Real ) ==
@@ -173,7 +175,7 @@ namespace StgSharp.Script.Express
{
if( left.EqualityTypeConvert != right.EqualityTypeConvert ) {
throw new ExpInvalidTypeException(
left.EqualityTypeConvert.Name, right.EqualityTypeConvert.Name );
source, left.EqualityTypeConvert.Name, right.EqualityTypeConvert.Name );
}
return new ExpBinaryOperatorNode( source, left, right )
{
@@ -189,7 +191,8 @@ namespace StgSharp.Script.Express
ExpSyntaxNode right )
{
if( !left.IsNumber && !right.IsNumber ) {
throw new ExpInvalidTypeException( "Number", left.EqualityTypeConvert.Name );
throw new ExpInvalidTypeException( source, "Number",
left.EqualityTypeConvert.Name );
}
return new ExpBinaryOperatorNode( source, left, right )
{
@@ -205,7 +208,8 @@ namespace StgSharp.Script.Express
ExpSyntaxNode right )
{
if( !left.IsNumber && !right.IsNumber ) {
throw new ExpInvalidTypeException( "Number", left.EqualityTypeConvert.Name );
throw new ExpInvalidTypeException( source, "Number",
left.EqualityTypeConvert.Name );
}
return new ExpBinaryOperatorNode( source, left, right )
{
@@ -221,7 +225,8 @@ namespace StgSharp.Script.Express
ExpSyntaxNode right )
{
if( !left.IsNumber && !right.IsNumber ) {
throw new ExpInvalidTypeException( "Number", left.EqualityTypeConvert.Name );
throw new ExpInvalidTypeException( source, "Number",
left.EqualityTypeConvert.Name );
}
bool isFloat =
( left._nodeFlag | ExpNodeFlag.BuiltinType_Real ) == 0 || ( right._nodeFlag | ExpNodeFlag.BuiltinType_Real ) ==
@@ -241,7 +246,7 @@ namespace StgSharp.Script.Express
{
if( left.EqualityTypeConvert != right.EqualityTypeConvert ) {
throw new ExpInvalidTypeException(
left.EqualityTypeConvert.Name, right.EqualityTypeConvert.Name );
source, left.EqualityTypeConvert.Name, right.EqualityTypeConvert.Name );
}
return new ExpBinaryOperatorNode( source, left, right )
{
@@ -257,7 +262,8 @@ namespace StgSharp.Script.Express
ExpSyntaxNode right )
{
if( !left.IsNumber && !right.IsNumber ) {
throw new ExpInvalidTypeException( "Number", left.EqualityTypeConvert.Name );
throw new ExpInvalidTypeException( source, "Number",
left.EqualityTypeConvert.Name );
}
return new ExpBinaryOperatorNode( source, left, right )
{
@@ -273,7 +279,8 @@ namespace StgSharp.Script.Express
ExpSyntaxNode right )
{
if( !left.IsNumber && !right.IsNumber ) {
throw new ExpInvalidTypeException( "Number", left.EqualityTypeConvert.Name );
throw new ExpInvalidTypeException( source, "Number",
left.EqualityTypeConvert.Name );
}
bool isFloat =
( left._nodeFlag | ExpNodeFlag.BuiltinType_Real ) == 0 || ( right._nodeFlag | ExpNodeFlag.BuiltinType_Real ) ==
@@ -67,7 +67,7 @@ namespace StgSharp.Script.Express
{
if( !indexExpression.IsNumber ) {
throw new ExpInvalidTypeException(
"Number", indexExpression.EqualityTypeConvert.Name );
source, "Number", indexExpression.EqualityTypeConvert.Name );
}
return new ExpCollectionIndexNode( source, instance, indexExpression );
}
@@ -58,7 +58,7 @@ namespace StgSharp.Script.Express
public ExpFunctionSource FunctionCaller => _function;
public override ExpInstantiableElement EqualityTypeConvert => _function.;
public override ExpInstantiableElement EqualityTypeConvert => _function.ReturningType;
public override ExpSyntaxNode Left => Empty;
@@ -78,7 +78,7 @@ namespace StgSharp.Script.Express
1, isLiteral: true );
break;
default:
throw new ExpInvalidTypeException( "Int or Real", "otherwise" );
throw new ExpInvalidTypeException( variable, "Int or Real", "otherwise" );
}
}
_variable = variable;
@@ -58,7 +58,8 @@ namespace StgSharp.Script.Express
public static ExpUnaryOperatorNode UnaryMinus( Token source, ExpSyntaxNode operand )
{
if( !operand.IsNumber ) {
throw new ExpInvalidTypeException( "Number", operand.EqualityTypeConvert.Name );
throw new ExpInvalidTypeException(
source, "Number", operand.EqualityTypeConvert.Name );
}
bool isFloat =
( operand._nodeFlag | ExpNodeFlag.BuiltinType_Real ) == 0;
@@ -74,7 +75,7 @@ namespace StgSharp.Script.Express
if( ( operand._nodeFlag | ( ExpNodeFlag.BuiltinType_Logic | ExpNodeFlag.BuiltinType_Logic ) ) ==
0 ) {
throw new ExpInvalidTypeException(
"Bool or Logic", operand.EqualityTypeConvert.Name );
source, "Bool or Logic", operand.EqualityTypeConvert.Name );
}
return new ExpUnaryOperatorNode( source )
{
@@ -86,7 +87,8 @@ namespace StgSharp.Script.Express
public static ExpUnaryOperatorNode UnaryPlus( Token source, ExpSyntaxNode operand )
{
if( !operand.IsNumber ) {
throw new ExpInvalidTypeException( "Number", operand.EqualityTypeConvert.Name );
throw new ExpInvalidTypeException(
source, "Number", operand.EqualityTypeConvert.Name );
}
bool isFloat =
( operand._nodeFlag | ExpNodeFlag.BuiltinType_Real ) == 0;