From 6058ffe801f705c9805b94f81e50f2dab1310464 Mon Sep 17 00:00:00 2001 From: AntKrotov Date: Thu, 5 Jun 2025 00:39:45 +0300 Subject: [PATCH] fixed issue #30 (SYSTEM.VAL) --- Compiler.exe | Bin 314368 -> 314368 bytes Compiler.kex | Bin 273504 -> 273504 bytes compiler | Bin 313008 -> 313008 bytes doc/MSP430.txt | 2 +- doc/STM32.txt | 2 +- doc/x86.txt | 2 +- doc/x86_64.txt | 2 +- lib/Linux/Out.ob07 | 6 +++--- lib/Windows/Out.ob07 | 6 +++--- source/STATEMENTS.ob07 | 12 ++++++------ source/UTILS.ob07 | 4 ++-- 11 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Compiler.exe b/Compiler.exe index 8816c58b69941925afabf485b615d7091be4fb21..ef91386bb7ca69f8ee61fc5b895b3da8308385e5 100644 GIT binary patch delta 307 zcmZpeA>1%SctVGW!XAeV1}ONzpvSeh zEzcqiq^`@eI519_E}_5@4WvpGSVDo+DFqfiAoWv$#S2KeD6-f9sYXQ>amESTXDYHZ W6fwGNmzu(2tHWrzJ>me%3T^=SjD|S? delta 312 zcmZpeA>1%SctVGWV6=S(0~CB<&|~0cVsvht(>jN7>l~);Tt?@1jXb998hOldE9<*m z6+F6qB?1EfmkPW{|NsAgR;)*_>w|#*r3x?9*Z%(>@IwE~-~S#!W&aB}Ui7~C^WUTO zK#2-W;LU%aK&R^sApZtXqK^B8+6kb@f8QIg-(<;v%-r+!?|%^O1TqF_vd8g*EvxL*I=|NnQp3UvGO zK+H1u4>T(lWY+&uffw@I|Njqo(F!yNsOEnG%L@_rzyDhgsFcV<`3<3e|984>>2}@H zdZ3Q$#Uzct|Nr}LdHufEb7+B#|9z{T|7o)2&u8n=|g2UbKSQ14!*&!R!O1 zI94*N11W=*%yvL3e|9}^l_5b|`s`+2Q@*>Io@Bh{VCGt@2xzNA=J6+#&yS`~XP{;M+fyUqe z|9#)QexD@+GE3X=-+vJO2&f-u;!bA<1_p>N>bw5~MYim80g0%9Exz;>Xt6)Y;%?V1 z%|Dpl%9IScA_N@zqWq7}>@Kx+32W*;EM zv65LGNExhTwgXc6E1Av2cl)(lF)%O$1pY4-cyZ#(|NmM3 z9=)y)0zA5ba?L-O_@^B3Xnw#L@Iv*=-~U-MAXU%5{{0W4bAcitwLl{r;YM8A`2Rmp zuYyOnuLQ(U{{KKjW5I_0FI9MPe$D^?0WYq92I{o{s{3ES@xt`YpZ^}M2TD{x8bJb6 z{sRR%T^oS>2B1V8_ltAKfg=BX8(zNw8Z=>hkT^>%J7dT63vw*dKALbP z(LkzGo+T7W-Ir(415$hnEM7n=Qh~)ra>9QDm=y&N{{Wrg_6qEU3ES5xurw4gx@^~< Q%<@Br(R91U0hSIn0E~N;N&o-= delta 303 zcmdncE4-msxS@q{3zJPQqjS4$F4K0~T;{ly_1&%t9^JkY0fGNZ1zx28|NlQL)}z<; zLBRh~g%|2;|Njqoq5tLYe-EIt{{ z1W@F^?~T`QvSdJJ?)m!nKZte$83Q!g=Vk6n{-vH*~f`@;Ao^pEyHFKQ;OG6Q(^LG8oEI)J@ MO}1+sVCi5308grqMF0Q* diff --git a/doc/MSP430.txt b/doc/MSP430.txt index 8f8cf39..19051ec 100644 --- a/doc/MSP430.txt +++ b/doc/MSP430.txt @@ -104,7 +104,7 @@ UTF-8 с BOM-сигнатурой. PROCEDURE SADR(x: строковая константа): INTEGER возвращает адрес x - PROCEDURE VAL(v: любой тип; T): T + PROCEDURE VAL(T; v: любой тип): T v - переменная; интерпретирует v, как переменную типа T diff --git a/doc/STM32.txt b/doc/STM32.txt index 615ba20..5ec4e95 100644 --- a/doc/STM32.txt +++ b/doc/STM32.txt @@ -110,7 +110,7 @@ UTF-8 с BOM-сигнатурой. PROCEDURE WSADR(x: строковая константа (WCHAR)): INTEGER возвращает адрес x - PROCEDURE VAL(v: любой тип; T): T + PROCEDURE VAL(T; v: любой тип): T v - переменная; интерпретирует v, как переменную типа T diff --git a/doc/x86.txt b/doc/x86.txt index 76c454c..9579320 100644 --- a/doc/x86.txt +++ b/doc/x86.txt @@ -142,7 +142,7 @@ UTF-8 с BOM-сигнатурой. PROCEDURE WSADR(x: строковая константа (WCHAR)): INTEGER возвращает адрес x - PROCEDURE VAL(v: любой тип; T): T + PROCEDURE VAL(T; v: любой тип): T v - переменная; интерпретирует v, как переменную типа T diff --git a/doc/x86_64.txt b/doc/x86_64.txt index 0f6385f..c11569d 100644 --- a/doc/x86_64.txt +++ b/doc/x86_64.txt @@ -134,7 +134,7 @@ UTF-8 с BOM-сигнатурой. PROCEDURE WSADR(x: строковая константа (WCHAR)): INTEGER возвращает адрес x - PROCEDURE VAL(v: любой тип; T): T + PROCEDURE VAL(T; v: любой тип): T v - переменная; интерпретирует v, как переменную типа T diff --git a/lib/Linux/Out.ob07 b/lib/Linux/Out.ob07 index 51a4d2b..2d7da30 100644 --- a/lib/Linux/Out.ob07 +++ b/lib/Linux/Out.ob07 @@ -1,7 +1,7 @@ (* BSD 2-Clause License - Copyright (c) 2020-2022, Anton Krotov + Copyright (c) 2020-2022, 2025 Anton Krotov All rights reserved. *) @@ -54,7 +54,7 @@ BEGIN IF bit_depth = 32 THEN printf3(SYSTEM.SADR("%*.*E"), width, MAX(MIN(width - 8, 15), 1), x) ELSE - printf4(SYSTEM.SADR("%*.*E"), width, MAX(MIN(width - 8, 15), 1), SYSTEM.VAL(x, INTEGER)) + printf4(SYSTEM.SADR("%*.*E"), width, MAX(MIN(width - 8, 15), 1), SYSTEM.VAL(INTEGER, x)) END END Real; @@ -64,7 +64,7 @@ BEGIN IF bit_depth = 32 THEN printf3(SYSTEM.SADR("%*.*f"), width, precision, x) ELSE - printf4(SYSTEM.SADR("%*.*f"), width, precision, SYSTEM.VAL(x, INTEGER)) + printf4(SYSTEM.SADR("%*.*f"), width, precision, SYSTEM.VAL(INTEGER, x)) END END FixReal; diff --git a/lib/Windows/Out.ob07 b/lib/Windows/Out.ob07 index cc70a1a..05cb984 100644 --- a/lib/Windows/Out.ob07 +++ b/lib/Windows/Out.ob07 @@ -1,7 +1,7 @@ (* BSD 2-Clause License - Copyright (c) 2020-2022, Anton Krotov + Copyright (c) 2020-2022, 2025 Anton Krotov All rights reserved. *) @@ -74,7 +74,7 @@ BEGIN IF bit_depth = 32 THEN printf3(SYSTEM.SADR("%*.*E"), width, MAX(MIN(width - 8, 15), 1), x) ELSE - printf4(SYSTEM.SADR("%*.*E"), width, MAX(MIN(width - 8, 15), 1), SYSTEM.VAL(x, INTEGER)) + printf4(SYSTEM.SADR("%*.*E"), width, MAX(MIN(width - 8, 15), 1), SYSTEM.VAL(INTEGER, x)) END END Real; @@ -84,7 +84,7 @@ BEGIN IF bit_depth = 32 THEN printf3(SYSTEM.SADR("%*.*f"), width, precision, x) ELSE - printf4(SYSTEM.SADR("%*.*f"), width, precision, SYSTEM.VAL(x, INTEGER)) + printf4(SYSTEM.SADR("%*.*f"), width, precision, SYSTEM.VAL(INTEGER, x)) END END FixReal; diff --git a/source/STATEMENTS.ob07 b/source/STATEMENTS.ob07 index d7b1d3b..12cb8d3 100644 --- a/source/STATEMENTS.ob07 +++ b/source/STATEMENTS.ob07 @@ -1,7 +1,7 @@ (* BSD 2-Clause License - Copyright (c) 2018-2023, Anton Krotov + Copyright (c) 2018-2023, 2025 Anton Krotov All rights reserved. *) @@ -1483,6 +1483,11 @@ BEGIN PARS.checklex(parser, SCAN.lxLROUND); PARS.Next(parser); getpos(parser, pos); + qualident(parser, t); + PARS.check(t.obj = eTYPE, pos, 79); + PARS.checklex(parser, SCAN.lxCOMMA); + PARS.Next(parser); + getpos(parser, pos); designator(parser, e); PARS.check(isVar(e), pos, 93); IF PROG.isOpenArray(e._type) THEN @@ -1492,11 +1497,6 @@ BEGIN DEC(n) END END; - PARS.checklex(parser, SCAN.lxCOMMA); - PARS.Next(parser); - getpos(parser, pos); - qualident(parser, t); - PARS.check(t.obj = eTYPE, pos, 79); e._type := t._type; PARS.checklex(parser, SCAN.lxRROUND); PARS.Next(parser) diff --git a/source/UTILS.ob07 b/source/UTILS.ob07 index b56cb7a..3a2b9cb 100644 --- a/source/UTILS.ob07 +++ b/source/UTILS.ob07 @@ -23,8 +23,8 @@ CONST max32* = 2147483647; vMajor* = 1; - vMinor* = 67; - Date* = "04-jun-2025"; + vMinor* = 68; + Date* = "05-jun-2025"; FILE_EXT* = ".ob07"; RTL_NAME* = "RTL";