1
0
Эх сурвалжийг харах

对None的point运算的设定

SongZihuan 5 жил өмнө
parent
commit
7b19767101

+ 1 - 0
README.md

@@ -61,5 +61,6 @@ return x n  函数返回值x,返回n层
 * 设置了函数静态空间,允许对函数使用point运算符。
 * 设置了函数静态空间,允许对函数使用point运算符。
 * 设置了setup函数,函数可以使用setup关键词进行初始化。
 * 设置了setup函数,函数可以使用setup关键词进行初始化。
 * 设置inline函数,函数执行的时候将不会产生单独的``var_list``,也不会记录``var_list``。
 * 设置inline函数,函数执行的时候将不会产生单独的``var_list``,也不会记录``var_list``。
+* 设置对None的point运算均为None
 ## 关于GWARF
 ## 关于GWARF
 最后更新时间 : 2020年05月05日 广州
 最后更新时间 : 2020年05月05日 广州

+ 2 - 2
inter/interpreter.c

@@ -352,7 +352,7 @@ GWARF_result read_statement(statement *the_statement, var_list *the_var, var_lis
                 return_value = traverse((the_statement->code).point.child_var, base_the_var.value.func_value->self, false);
                 return_value = traverse((the_statement->code).point.child_var, base_the_var.value.func_value->self, false);
                 base_the_var.value.func_value->self->next = old_tmp;  // 恢复
                 base_the_var.value.func_value->self->next = old_tmp;  // 恢复
             }
             }
-            else{  // 其他类型
+            else{  // 其他类型 均返回NULL
                 goto the_break;
                 goto the_break;
             }
             }
             if(is_error(&return_value)){  // Name Error错误
             if(is_error(&return_value)){  // Name Error错误
@@ -1854,7 +1854,7 @@ GWARF_result assignment_statement_core(statement *the_statement, var_list *the_v
             value = assignment_statement(the_statement->code.point.child_var, the_var, base_the_var.value.func_value->self, right_result);
             value = assignment_statement(the_statement->code.point.child_var, the_var, base_the_var.value.func_value->self, right_result);
         }
         }
         else{
         else{
-            goto the_else;
+            return value;  // 对NONE的point运算均为NULL
         }
         }
     }
     }
     else if(the_statement->type == down){  // 通过down赋值
     else if(the_statement->type == down){  // 通过down赋值