mirror of
https://github.com/AntKrotov/oberon-07-compiler.git
synced 2026-10-05 09:45:47 +00:00
fixed issue #30 (SYSTEM.VAL)
This commit is contained in:
1 parent
d5df50061a
commit
6058ffe801
11 files changed
+18
-18
No files matched your search
Binary file not shown.
Binary file not shown.
+1
-1
@@ -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
|
||||
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
+2
-2
@@ -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";
|
||||
|
||||
Reference in new issue
Block a user