瀏覽代碼

Add a missing "case TK_INTERFACE:" and also a fix for default parameter value

mingodad 6 年之前
父節點
當前提交
7014370221
共有 1 個文件被更改,包括 3 次插入0 次删除
  1. 3 0
      SquiLu/squirrel/sqcompiler.cpp

+ 3 - 0
SquiLu/squirrel/sqcompiler.cpp

@@ -1870,6 +1870,7 @@ start_again:
             break;
             break;
         case TK_STRUCT:
         case TK_STRUCT:
         case TK_CLASS:
         case TK_CLASS:
+        case TK_INTERFACE:
             Lex();
             Lex();
             ClassExp(NULL);
             ClassExp(NULL);
             break;
             break;
@@ -3257,6 +3258,7 @@ error:
                 {
                 {
                     funcstate->AddParameterTypeName(param_type_name);
                     funcstate->AddParameterTypeName(param_type_name);
                 }
                 }
+    default_value:
                 if(_token == _SC('='))
                 if(_token == _SC('='))
                 {
                 {
                     if(is_reference_declaration) Error(_SC("parameter passed by reference can't have default value"));
                     if(is_reference_declaration) Error(_SC("parameter passed by reference can't have default value"));
@@ -3278,6 +3280,7 @@ error:
                     type_name = ExpectTypeToken();
                     type_name = ExpectTypeToken();
                     funcstate->AddParameterTypeName(type_name);
                     funcstate->AddParameterTypeName(type_name);
                     //printf("%d %s\n", __LINE__, _stringval(type_name));
                     //printf("%d %s\n", __LINE__, _stringval(type_name));
+                    if(_token == _SC('=')) goto default_value; //default value
                 }
                 }
                 else
                 else
                 {
                 {