Selaa lähdekoodia

修复了print的问题(snprintf被替换成了fprintf导致print失效,现已修复回snprintf),新增4个demo

SongZihuan 5 vuotta sitten
vanhempi
sitoutus
179c82d53b
9 muutettua tiedostoa jossa 141 lisäystä ja 66 poistoa
  1. 27 0
      demo/1.gwf
  2. 32 0
      demo/2.gwf
  3. 5 0
      demo/3.gwf
  4. 6 0
      demo/4.gwf
  5. 60 60
      inter/cfunc.c
  6. 2 0
      inter/interpreter.c
  7. 4 4
      inter/interpreter.h
  8. 1 0
      paser/lexical.c
  9. 4 2
      paser/token.h

+ 27 - 0
demo/1.gwf

@@ -0,0 +1,27 @@
+# 关于计算的Demo
+print(10 + 2)
+print(3 - 8)
+print(42 / 3)
+print(23 * 2)
+print(6 > 3)
+print(6 < 2)
+print(6 >= 6)
+print(6 <= 10)
+print(6 != 3)
+print(4 ** 2)
+print(5 log 2)
+print(6 sqrt 3)
+print(-8)
+print(True && False)
+print(True || False)
+print(!True)
+print(22 % 3)
+print(22 // 3)
+print(48 & 32)
+print(23 | 21)
+print(22 ^ 32)
+print(~98)
+print(32<<2)
+print(34>>3)
+print(True ==> False)
+print(True <== False)

+ 32 - 0
demo/2.gwf

@@ -0,0 +1,32 @@
+if(True){
+print("I am True")
+}
+else{
+print("I am False")
+}
+
+a = 0
+while(a < 3){
+a++
+print("a = ", a)
+}
+
+do{
+print("Do One")
+}while(False)
+
+a = 1,2,3,4,6,7
+for i in a
+{
+print("i = ", i)
+}
+
+for z=0,z<3,z++,
+{
+print("z = ", z)
+}
+
+do{
+print("I am command block")
+}
+

+ 5 - 0
demo/3.gwf

@@ -0,0 +1,5 @@
+def a(x,y,*a,z,**k){
+print(x + y * a[1] + z / k["b"])
+}
+
+a(*[2,3],3,4,5,6,b=5,**{"z":2})

+ 6 - 0
demo/4.gwf

@@ -0,0 +1,6 @@
+a = 10
+if(True)
+{
+[1]a = 12 * a
+}
+print("a = ", a)

+ 60 - 60
inter/cfunc.c

@@ -226,7 +226,7 @@ GWARF_result official_func(func *the_func, parameter *tmp_s, var_list *the_var,
 
 class_object *object_login_official(var_list *the_var, GWARF_result (*paser)(func *, parameter *, var_list *, GWARF_result, var_list *,inter *), inter *global_inter){  // 内置对象继承的类
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, NULL);
 
@@ -234,7 +234,7 @@ class_object *object_login_official(var_list *the_var, GWARF_result (*paser)(fun
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("object", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
 
 
     // 注册函数
@@ -302,14 +302,14 @@ class_object *make_object(var_list *the_var, var_list *father_var_list){
 
 class_object *BaseException_login_official(var_list *the_var, GWARF_result (*paser)(func *, parameter *, var_list *, GWARF_result, var_list *,inter *), var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
     class_value.value.type = CLASS_value;
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("BaseException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
 
     // 注册函数
     int a[][2] = {{__init__func,1}};
@@ -354,7 +354,7 @@ GWARF_result BaseException_official_func(func *the_func, parameter *tmp_s, var_l
 
 class_object *Exception_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -362,13 +362,13 @@ class_object *Exception_login_official(var_list *the_var, var_list *father_var_l
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("Exception", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *AssertException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -376,13 +376,13 @@ class_object *AssertException_login_official(var_list *the_var, var_list *father
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("AssertException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *NameException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -390,13 +390,13 @@ class_object *NameException_login_official(var_list *the_var, var_list *father_v
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("NameException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *IterException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -404,13 +404,13 @@ class_object *IterException_login_official(var_list *the_var, var_list *father_v
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("IterException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *AssignmentException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -418,13 +418,13 @@ class_object *AssignmentException_login_official(var_list *the_var, var_list *fa
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("AssignmentException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *IndexException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -432,13 +432,13 @@ class_object *IndexException_login_official(var_list *the_var, var_list *father_
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("IndexException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *KeyException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -446,13 +446,13 @@ class_object *KeyException_login_official(var_list *the_var, var_list *father_va
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("KeyException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *ImportException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -460,13 +460,13 @@ class_object *ImportException_login_official(var_list *the_var, var_list *father
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("ImportException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *IncludeException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -474,13 +474,13 @@ class_object *IncludeException_login_official(var_list *the_var, var_list *fathe
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("IncludeException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *DivZeroException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -488,13 +488,13 @@ class_object *DivZeroException_login_official(var_list *the_var, var_list *fathe
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("DivZeroException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *ValueException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -502,13 +502,13 @@ class_object *ValueException_login_official(var_list *the_var, var_list *father_
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("ValueException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *TypeException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -516,13 +516,13 @@ class_object *TypeException_login_official(var_list *the_var, var_list *father_v
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("TypeException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *ArgsException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -530,13 +530,13 @@ class_object *ArgsException_login_official(var_list *the_var, var_list *father_v
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("ArgsException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *SystemctlException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -544,13 +544,13 @@ class_object *SystemctlException_login_official(var_list *the_var, var_list *fat
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("SystemctlException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *VarException_login_official(var_list *the_var, var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -558,13 +558,13 @@ class_object *VarException_login_official(var_list *the_var, var_list *father_va
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("VarException", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
     return class_tmp;
 }
 
 class_object *gobject_login_official(var_list *the_var, GWARF_result (*paser)(func *, parameter *, var_list *, GWARF_result, var_list *,inter *), var_list *father_var_list, inter *global_inter){  // 内置对象继承的类
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
     
@@ -572,7 +572,7 @@ class_object *gobject_login_official(var_list *the_var, GWARF_result (*paser)(fu
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("gobject", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
 
     // 注册函数
     int a[][2] = {{__init__func,1}, {__value__func,1}, {__add__func,1}, {__sub__func,1}, {__mul__func,1},
@@ -1161,14 +1161,14 @@ GWARF_result gobject_official_func(func *the_func, parameter *tmp_s, var_list *t
 
 class_object *int_login_official(var_list *the_var, GWARF_result (*paser)(func *, parameter *, var_list *, GWARF_result, var_list *,inter *), var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
     class_value.value.type = CLASS_value;
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("int", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
 
     // 注册函数
     int a[][2] = {{__init__func,1}, {__assignment__func, 1}};
@@ -1272,7 +1272,7 @@ GWARF_result to_int(GWARF_value value, var_list *the_var, inter *global_inter){
 
 class_object *double_login_official(var_list *the_var, GWARF_result (*paser)(func *, parameter *, var_list *, GWARF_result, var_list *,inter *), var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -1280,7 +1280,7 @@ class_object *double_login_official(var_list *the_var, GWARF_result (*paser)(fun
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("double", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
 
     // 注册函数
     int a[][2] = {{__init__func,1}, {__assignment__func, 1}};
@@ -1381,7 +1381,7 @@ GWARF_result to_double(GWARF_value value, var_list *the_var, inter *global_inter
 
 class_object *str_login_official(var_list *the_var, GWARF_result (*paser)(func *, parameter *, var_list *, GWARF_result, var_list *,inter *), var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -1389,7 +1389,7 @@ class_object *str_login_official(var_list *the_var, GWARF_result (*paser)(func *
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("str", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
 
     // 注册函数
     int a[][2] = {{__init__func,1}};
@@ -1458,12 +1458,12 @@ GWARF_result to_str(GWARF_value value, var_list *the_var, inter *global_inter){
         else if(value.type == INT_value){
             size_t size = (size_t)(2 + len_int(value.value.int_value));
             return_number.value.value.string = (char *)malloc(size);
-            fprintf(inter_info, return_number.value.value.string, size, "%d", value.value.int_value);
+            snprintf(return_number.value.value.string, size, "%d", value.value.int_value);
         }
         else if(value.type == NUMBER_value){
             size_t size = (size_t)(2 + len_double(value.value.double_value));
             return_number.value.value.string = (char *)malloc(size);
-            fprintf(inter_info, return_number.value.value.string, size, "%f", value.value.double_value);
+            snprintf(return_number.value.value.string, size, "%f", value.value.double_value);
         }
         else if(value.type == NULL_value){
             return_number.value.value.string = (char *)malloc(10);
@@ -1472,12 +1472,12 @@ GWARF_result to_str(GWARF_value value, var_list *the_var, inter *global_inter){
         else if(value.type == FUNC_value){
             size_t size = (size_t)(20 + len_intx((unsigned long int)value.value.func_value));  // 转换为无符号整形数字
             return_number.value.value.string = (char *)malloc(size);
-            fprintf(inter_info, return_number.value.value.string, size, "<-function on %u->", value.value.func_value);
+            snprintf(return_number.value.value.string, size, "<-function on %u->", value.value.func_value);
         }
         else if(value.type == CLASS_value){
             size_t size = (size_t)(16 + len_intx((unsigned long int)value.value.class_value));
             return_number.value.value.string = (char *)malloc(size);
-            fprintf(inter_info, return_number.value.value.string, size, "<-class on %u->", value.value.class_value);
+            snprintf(return_number.value.value.string, size, "<-class on %u->", value.value.class_value);
         }
         else{  // 还有LIST等,其余报错
             return_number = to_error("Get a Don't Support Type", "TypeException", global_inter);
@@ -1494,7 +1494,7 @@ GWARF_result to_str_dict(GWARF_value value, var_list *the_var, inter *global_int
     if((value.type == STRING_value)){
         size_t size = (size_t)(5 + strlen(value.value.string));
         return_number.value.value.string = calloc(sizeof(char), size);
-        fprintf(inter_info, return_number.value.value.string, size, "str_%s", value.value.string);
+        snprintf(return_number.value.value.string, size, "str_%s", value.value.string);
     }
     else if(value.type == OBJECT_value){  // 调用__value__方法
         GWARF_result tmp_str = to_str_dict(get__value__(&value, the_var, global_inter).value, the_var, global_inter);
@@ -1503,7 +1503,7 @@ GWARF_result to_str_dict(GWARF_value value, var_list *the_var, inter *global_int
         }
         size_t size = strlen(tmp_str.value.value.string) + 2;
         return_number.value.value.string = calloc(sizeof(char), size);
-        fprintf(inter_info, return_number.value.value.string, size, "%s", tmp_str.value.value.string);
+        snprintf(return_number.value.value.string, size, "%s", tmp_str.value.value.string);
     }
     else{
         if(value.type == BOOL_value){
@@ -1519,22 +1519,22 @@ GWARF_result to_str_dict(GWARF_value value, var_list *the_var, inter *global_int
         else if(value.type == INT_value){
             size_t size = (size_t)(6 + len_int(value.value.int_value));
             return_number.value.value.string = calloc(sizeof(char), size);
-            fprintf(inter_info, return_number.value.value.string, size, "int_%d", value.value.int_value);
+            snprintf(return_number.value.value.string, size, "int_%d", value.value.int_value);
         }
         else if(value.type == NUMBER_value){
             size_t size = (size_t)(10 + len_double(value.value.double_value));
             return_number.value.value.string = calloc(sizeof(char), size);
-            fprintf(inter_info, return_number.value.value.string, size, "double_%f", value.value.double_value);
+            snprintf(return_number.value.value.string, size, "double_%f", value.value.double_value);
         }
         else if(value.type == FUNC_value){
             size_t size = (size_t)(29 + len_intx((unsigned long int)value.value.func_value));  // 转换为无符号整形数字
             return_number.value.value.string = calloc(sizeof(char), size);
-            fprintf(inter_info, return_number.value.value.string, size, "str_<-function on %u->", value.value.func_value);
+            snprintf(return_number.value.value.string, size, "str_<-function on %u->", value.value.func_value);
         }
         else if(value.type == CLASS_value){  // class_value和func_value应该调用__name__
             size_t size = (size_t)(22 + len_intx((unsigned long int)value.value.class_value));
             return_number.value.value.string = calloc(sizeof(char), size);
-            fprintf(inter_info, return_number.value.value.string, size, "str_<-class on %u->", value.value.class_value);
+            snprintf(return_number.value.value.string, size, "str_<-class on %u->", value.value.class_value);
         }
         else if(value.type == NULL_value){
             return_number.value.value.string = calloc(sizeof(char), 13);
@@ -1606,7 +1606,7 @@ GWARF_value key_to_str(char *key){  // 复原key
 
 class_object *bool_login_official(var_list *the_var, GWARF_result (*paser)(func *, parameter *, var_list *, GWARF_result, var_list *,inter *), var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -1614,7 +1614,7 @@ class_object *bool_login_official(var_list *the_var, GWARF_result (*paser)(func
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("bool", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
 
     // 注册函数
     int a[][2] = {{__init__func,1}, {__assignment__func, 1}};
@@ -1709,7 +1709,7 @@ GWARF_result to_bool_(GWARF_value value, var_list *the_var, inter *global_inter)
 
 class_object *tuple_login_official(var_list *the_var, GWARF_result (*paser)(func *, parameter *, var_list *, GWARF_result, var_list *,inter *), var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -1717,7 +1717,7 @@ class_object *tuple_login_official(var_list *the_var, GWARF_result (*paser)(func
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("tuple", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
 
     // 注册函数
     int a[][2] = {{__init__func,1},{__len__func,1},{__down__func,1},{__slice__func,1},{__iter__func,1},{__next__func,1},{__in__func, 1}};
@@ -1942,7 +1942,7 @@ GWARF_result tuple_official_func(func *the_func, parameter *tmp_s, var_list *the
 
 class_object *list_login_official(var_list *the_var, GWARF_result (*paser)(func *, parameter *, var_list *, GWARF_result, var_list *,inter *), var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -1950,7 +1950,7 @@ class_object *list_login_official(var_list *the_var, GWARF_result (*paser)(func
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("list", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
 
     // 注册函数
     int a[][2] = {{__set__func,1}};
@@ -2246,7 +2246,7 @@ GWARF_result parameter_to_dict(parameter *tmp_s, var_list *the_var, inter *globa
 
 class_object *dict_login_official(var_list *the_var, GWARF_result (*paser)(func *, parameter *, var_list *, GWARF_result, var_list *,inter *), var_list *father_var_list, inter *global_inter){
     // 创建对象[空对象]
-    fputs("----set class----\n", inter_info);
+    
     GWARF_result class_value = GWARF_result_reset;
     class_object *class_tmp = make_object(the_var, father_var_list);
 
@@ -2254,7 +2254,7 @@ class_object *dict_login_official(var_list *the_var, GWARF_result (*paser)(func
     class_value.value.value.class_value = class_tmp;
 
     assignment_func("dict", class_value, the_var, 0, auto_public);  // 注册class 的 位置
-    fputs("----stop set class----\n", inter_info);
+    
 
     // 注册函数
     int a[][2] = {{__init__func,1},{__down__func,1},{__set__func,1},{__next__func,1},{__in__func,1}};

+ 2 - 0
inter/interpreter.c

@@ -4271,6 +4271,7 @@ GWARF_result traverse_global(statement *the_statement, var_list *the_var, inter
         result = read_statement_list(tmp, the_var, global_inter);
         if(result.u == error){  // Name Error错误
             fprintf(inter_info, "%s", result.error_info);
+            printf("%s", result.error_info);
             break;
         }
         tmp = tmp->next;
@@ -4294,6 +4295,7 @@ GWARF_result traverse_get_value(statement *the_statement, var_list *the_var, var
         result = read_statement(tmp, the_var, NULL, out_var, lock, global_inter);
         if(result.u == error){  // Name Error错误
             fprintf(inter_info, "%s", result.error_info);
+            printf("%s", result.error_info);
             break;
         }
         else if(result.u == return_def && result.return_times != 0){  // return def

+ 4 - 4
inter/interpreter.h

@@ -165,10 +165,10 @@ typedef struct statement{
                 LESS_func,  // <
                 MOREEQ_func,  // >=
                 LESSEQ_func,  // <=
-                NOTEQ_func,  // <>
-                POW_func,  // <>
-                LOG_func,  // <>
-                SQRT_func,  // <>
+                NOTEQ_func,  // !=
+                POW_func,  // **
+                LOG_func,  // log
+                SQRT_func,  // sqrt
                 NEGATIVE_func,  // -a
                 AND_func,  // &&
                 OR_func,  // ||

+ 1 - 0
paser/lexical.c

@@ -195,6 +195,7 @@ int paser(int *index, p_status *status){
         match_text(p, global_paser[PRIVATE_PASER], "private");
         match_text(p, global_paser[FINALLY_PASER], "finally");
         match_text(p, global_paser[IS_PASER], "is");
+        match_text(p, global_paser[SEMICOLON_PASER], ";");
 
         *index = check_list(global_paser, p, status);  // 检查解析结果
 

+ 4 - 2
paser/token.h

@@ -3,7 +3,7 @@
 
 #include "../inter/interpreter.h"
 
-#define MAX_PASER_SIZE 108
+#define MAX_PASER_SIZE 109
 #define INT_PASER 0
 #define DOUBLE_PASER 1
 #define ENTER_PASER 2
@@ -112,6 +112,7 @@
 #define BOOLSOR_PASER 105
 #define FINALLY_PASER 106
 #define IS_PASER 107
+#define SEMICOLON_PASER 108
 
 // 获取并返回一个token
 #define get_pop_token(status,list,new_token) \
@@ -152,7 +153,7 @@ if((status.dict_to_enter && stop.type == RP_PASER) || stop.type == EOF_token){ \
     back_again(list, stop); \
     break;  \
 } \
-if(stop.type != ENTER_PASER){ \
+if(stop.type != ENTER_PASER && stop.type != SEMICOLON_PASER){ \
     paser_error("Don't get stop token or EOF"); \
 } \
 }while(0);
@@ -267,6 +268,7 @@ typedef enum token_type
     BOOLSOR = BOOLSOR_PASER,
     FINALLY = FINALLY_PASER,
     IS = IS_PASER,
+    SEMICOLON = SEMICOLON_PASER,
 
     // 特殊符号
     BAD_token = -2,