diff --git a/Compiler b/Compiler index 47619ba..aeb9ba8 100644 Binary files a/Compiler and b/Compiler differ diff --git a/Compiler.exe b/Compiler.exe index f7304a7..32db0ce 100644 Binary files a/Compiler.exe and b/Compiler.exe differ diff --git a/source/REG.ob07 b/source/REG.ob07 index 0fa10c4..06aab4f 100644 --- a/source/REG.ob07 +++ b/source/REG.ob07 @@ -70,17 +70,12 @@ END pop; PROCEDURE InStk (R: REGS; reg: INTEGER): INTEGER; VAR - i, n: INTEGER; + i: INTEGER; BEGIN - i := 0; - n := R.top; - WHILE (i <= n) & (R.stk[i] # reg) DO - INC(i) - END; - - IF i > n THEN - i := -1 + i := R.top; + WHILE (i >= 0) & (R.stk[i] # reg) DO + DEC(i) END RETURN i diff --git a/source/STATEMENTS.ob07 b/source/STATEMENTS.ob07 index abbaddf..3e33d77 100644 --- a/source/STATEMENTS.ob07 +++ b/source/STATEMENTS.ob07 @@ -1546,7 +1546,9 @@ BEGIN PARS.checklex(parser, SCAN.lxRSQUARE); PARS.Next(parser); - e.ident := NIL + IF ~(isArr(e) & (e._type.length = 0) & (parser.sym = SCAN.lxLSQUARE)) THEN + e.ident := NIL + END ELSIF parser.sym = SCAN.lxCARET DO getpos(parser, pos); diff --git a/source/UTILS.ob07 b/source/UTILS.ob07 index 5123e70..66abff7 100644 --- a/source/UTILS.ob07 +++ b/source/UTILS.ob07 @@ -24,7 +24,7 @@ CONST vMajor* = 1; vMinor* = 52; - Date* = "2021-02-17"; + Date* = "2021-apr-06"; FILE_EXT* = ".ob07"; RTL_NAME* = "RTL";