Преглед на файлове

refactor: 去除强制普通调用和非严格调用的相关程序

强制普通调用和非严格调用应由函数自己实现
SongZihuan преди 3 години
родител
ревизия
f3651f3eee
променени са 4 файла, в които са добавени 2 реда и са изтрити 16 реда
  1. 1 3
      include/prefix_macro.h
  2. 0 2
      src/core/__env.h
  3. 0 2
      src/core/env.c
  4. 1 9
      src/core/run.c

+ 1 - 3
include/prefix_macro.h

@@ -11,9 +11,7 @@
 
 #define B_EXEC            (2)  /* 括号前缀: 顺序执行 */
 #define B_EXEC_FIRST      (3)  /* 括号前缀: 顺序执行, 返回第一个 */
-#define B_MUST_COMMON_ARG (4)  /* 括号前缀: 强制普通参数调用 */
-#define B_NOT_STRICT      (5)  /* 括号前缀: 非严格参数匹配调用 */
 
-#define PREFIX_SIZE       (6)  /* 前缀总数 */
+#define PREFIX_SIZE       (4)  /* 前缀总数 */
 
 #endif //AFUN__PREFIX_MACRO_H

+ 0 - 2
src/core/__env.h

@@ -78,8 +78,6 @@ struct af_Activity {  // 活动记录器
 
     // 函数调用专项
     enum af_BlockType call_type;  // 函数调用类型
-    bool must_common_arg;  // 强制普通参数
-    bool not_strict;  // 非严格调用
     struct af_Object *parentheses_call;  // 类前缀调用
     struct ArgCodeList *acl_start;
     struct ArgCodeList *acl_next;

+ 0 - 2
src/core/env.c

@@ -41,8 +41,6 @@ static af_Core *makeCore(void) {
 
     core->prefix[B_EXEC] = '\'';
     core->prefix[B_EXEC_FIRST] = ',';
-    core->prefix[B_MUST_COMMON_ARG] = '<';
-    core->prefix[B_NOT_STRICT] = ',';
 
     return core;
 }

+ 1 - 9
src/core/run.c

@@ -2,10 +2,6 @@
 
 #include "run.h"
 #include "__env.h"
-#include "__object.h"
-#include "__var.h"
-#include "__gc.h"
-#include "__code.h"
 
 /* Code 执行函数 */
 static void codeVariable(af_Code *code, af_Environment *env);
@@ -53,10 +49,6 @@ static void codeBlock(af_Code *code, af_Environment *env) {
         pushExecutionActivity(code, true, env);
     else if (code->prefix == NUL) {
         pushFuncActivity(env->activity->bt_next, env);
-        if (code->prefix == env->core->prefix[B_MUST_COMMON_ARG])
-            env->activity->must_common_arg = true;
-        else if (code->prefix == env->core->prefix[B_NOT_STRICT])
-            env->activity->not_strict = true;
     } else
         pushMessageDown(makeMessage("ERROR-STR", 0), env);
 
@@ -163,7 +155,7 @@ bool iterCode(af_Code *code, af_Environment *env) {
                         process_mgs_first = true;
                     }
                 } else if (env->activity->bt_next->type == block && env->activity->bt_next->block.type == parentheses
-                           && env->activity->bt_next->prefix == NUL) {  // 类前缀调用
+                           && env->activity->bt_next->prefix != env->core->prefix[B_EXEC]) {  // 类前缀调用
                     env->activity->parentheses_call = *(af_Object **)(msg->msg);
                     freeMessage(msg);
                 } else {