Преглед изворни кода

feat: 修改了部分的关键词

SongZihuan пре 4 година
родитељ
комит
f7ec8d2161
2 измењених фајлова са 35 додато и 35 уклоњено
  1. 33 33
      vmcore/src/inter.c
  2. 2 2
      vmcore/src/runoperation.c

+ 33 - 33
vmcore/src/inter.c

@@ -68,14 +68,14 @@ void setBaseInterData(struct Inter *inter){
     inter->data.mag_func[M_ENTER] = setName("__enter__");
     inter->data.mag_func[M_EXIT] = setName("__exit__");
     inter->data.mag_func[M_NEW] = setName("__new__");
-    inter->data.mag_func[M_ADD] = setName("__add__");
-    inter->data.mag_func[M_SUB] = setName("__sub__");
-    inter->data.mag_func[M_MUL] = setName("__mul__");
-    inter->data.mag_func[M_DIV] = setName("__div__");
-    inter->data.mag_func[M_CALL] = setName("__call__");
+    inter->data.mag_func[M_ADD] = setName("+");
+    inter->data.mag_func[M_SUB] = setName("-");
+    inter->data.mag_func[M_MUL] = setName("*");
+    inter->data.mag_func[M_DIV] = setName("/");
+    inter->data.mag_func[M_CALL] = setName("()");
     inter->data.mag_func[M_DEL] = setName("__del__");
-    inter->data.mag_func[M_DOWN] = setName("__down__");
-    inter->data.mag_func[M_SLICE] = setName("__slice__");
+    inter->data.mag_func[M_DOWN] = setName("[]");
+    inter->data.mag_func[M_SLICE] = setName("[:]");
     inter->data.mag_func[M_ITER] = setName("__iter__");
     inter->data.mag_func[M_NEXT] = setName("__next__");
     inter->data.mag_func[M_REPO] = setName("__repo__");
@@ -85,35 +85,35 @@ void setBaseInterData(struct Inter *inter){
     inter->data.mag_func[M_FATHER] = setName("__father__");
     inter->data.mag_func[M_MESSAGE] = setName("__message__");
     inter->data.mag_func[M_STR] = setName("__str__");
-    inter->data.mag_func[M_DOWN_ASSIGMENT] = setName("__down_assignment__");
-    inter->data.mag_func[M_SLICE_ASSIGMENT] = setName("__slice_assignment__");
-    inter->data.mag_func[M_DOWN_DEL] = setName("__down_del__");
-    inter->data.mag_func[M_SLICE_DEL] = setName("__slice_del__");
+    inter->data.mag_func[M_DOWN_ASSIGMENT] = setName("[]=");
+    inter->data.mag_func[M_SLICE_ASSIGMENT] = setName("[:]=");
+    inter->data.mag_func[M_DOWN_DEL] = setName("del[]");
+    inter->data.mag_func[M_SLICE_DEL] = setName("del[:]");
     inter->data.mag_func[M_ATTR] = setName("__attr__");
     inter->data.mag_func[M_VAL] = setName("__val__");
 
-    inter->data.mag_func[M_INTDIV] = setName("__intdiv__");
-    inter->data.mag_func[M_MOD] = setName("__mod__");
-    inter->data.mag_func[M_POW] = setName("__pow__");
-
-    inter->data.mag_func[M_BAND] = setName("__bitand__");
-    inter->data.mag_func[M_BOR] = setName("__bitor__");
-    inter->data.mag_func[M_BXOR] = setName("__bitxor__");
-    inter->data.mag_func[M_BNOT] = setName("__bitnot__");
-    inter->data.mag_func[M_BL] = setName("__bitleft__");
-    inter->data.mag_func[M_BR] = setName("__bitright__");
-
-    inter->data.mag_func[M_EQ] = setName("__eq__");
-    inter->data.mag_func[M_MOREEQ] = setName("__moreeq__");
-    inter->data.mag_func[M_LESSEQ] = setName("__lesseq__");
-    inter->data.mag_func[M_MORE] = setName("__more__");
-    inter->data.mag_func[M_LESS] = setName("__less__");
-    inter->data.mag_func[M_NOTEQ] = setName("__noteq__");
-
-    inter->data.mag_func[M_AND] = setName("__and__");
-    inter->data.mag_func[M_OR] = setName("__or__");
-    inter->data.mag_func[M_NOT] = setName("__not__");
-    inter->data.mag_func[M_NEGATE] = setName("__negate__");
+    inter->data.mag_func[M_INTDIV] = setName("//");
+    inter->data.mag_func[M_MOD] = setName("%");
+    inter->data.mag_func[M_POW] = setName("**");
+
+    inter->data.mag_func[M_BAND] = setName("&");
+    inter->data.mag_func[M_BOR] = setName("|");
+    inter->data.mag_func[M_BXOR] = setName("^");
+    inter->data.mag_func[M_BNOT] = setName("~");
+    inter->data.mag_func[M_BL] = setName(">>");
+    inter->data.mag_func[M_BR] = setName("<<");
+
+    inter->data.mag_func[M_EQ] = setName("==");
+    inter->data.mag_func[M_MOREEQ] = setName(">=");
+    inter->data.mag_func[M_LESSEQ] = setName("<=");
+    inter->data.mag_func[M_MORE] = setName(">");
+    inter->data.mag_func[M_LESS] = setName("<");
+    inter->data.mag_func[M_NOTEQ] = setName("!=");
+
+    inter->data.mag_func[M_AND] = setName("&&");
+    inter->data.mag_func[M_OR] = setName("||");
+    inter->data.mag_func[M_NOT] = setName("!");
+    inter->data.mag_func[M_NEGATE] = setName("-s");
 
     inter->data.default_pt_type = free_;
     inter->data.var_max = 100;

+ 2 - 2
vmcore/src/runoperation.c

@@ -511,7 +511,7 @@ static ResultType setNameException(LinkValue *val, wchar_t *name, fline line, ch
     gc_addTmpLink(&val->gc_status);
 
     setResultError(E_NameExceptiom, message, line, file, true, CNEXT_NT);
-    addAttributes(inter->data.mag_func[M_VAL], false, val, line, file, true, CFUNC_NT(var_list, &tmp, result->value));
+    addAttributes(inter->data.mag_func[M_VAL], false, val, line, file, true, CFUNC_NT(var_list, &tmp, result->value));  // 将错误设置为__val__
     if (!RUN_TYPE(tmp.type)) {
         freeResult(result);
         *result = tmp;
@@ -520,7 +520,7 @@ static ResultType setNameException(LinkValue *val, wchar_t *name, fline line, ch
 
     freeResult(&tmp);
     _attr_ = findAttributes(inter->data.mag_func[M_ATTR], false, LINEFILE, true, CFUNC_NT(var_list, &tmp, belong));
-    if (!RUN_TYPE(tmp.type)) {
+    if (!RUN_TYPE(tmp.type)) {  // 回调__attr__并把错误作为参数
         freeResult(result);
         *result = tmp;
         goto return_;