forked from KolibriOS/kolibrios
Oberon07: v1.53
git-svn-id: svn://kolibrios.org@9177 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
e861f97224
commit
ce8fecbc6b
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -24,6 +24,8 @@ UTF-8 с BOM-сигнатурой.
|
|||||||
(соответствует типу исполняемого файла)
|
(соответствует типу исполняемого файла)
|
||||||
-stk <size> размер стэка в мегабайтах (по умолчанию 2 Мб,
|
-stk <size> размер стэка в мегабайтах (по умолчанию 2 Мб,
|
||||||
допустимо от 1 до 32 Мб)
|
допустимо от 1 до 32 Мб)
|
||||||
|
-tab <width> размер табуляции (используется для вычисления координат в
|
||||||
|
исходном коде), по умолчанию - 4
|
||||||
-nochk <"ptibcwra"> отключить проверки при выполнении (см. ниже)
|
-nochk <"ptibcwra"> отключить проверки при выполнении (см. ниже)
|
||||||
-lower разрешить ключевые слова и встроенные идентификаторы в
|
-lower разрешить ключевые слова и встроенные идентификаторы в
|
||||||
нижнем регистре
|
нижнем регистре
|
||||||
|
@ -22,6 +22,8 @@ UTF-8 с BOM-сигнатурой.
|
|||||||
(соответствует типу исполняемого файла)
|
(соответствует типу исполняемого файла)
|
||||||
-stk <size> размер стэка в мегабайтах (по умолчанию 2 Мб,
|
-stk <size> размер стэка в мегабайтах (по умолчанию 2 Мб,
|
||||||
допустимо от 1 до 32 Мб)
|
допустимо от 1 до 32 Мб)
|
||||||
|
-tab <width> размер табуляции (используется для вычисления координат в
|
||||||
|
исходном коде), по умолчанию - 4
|
||||||
-nochk <"ptibcwra"> отключить проверки при выполнении
|
-nochk <"ptibcwra"> отключить проверки при выполнении
|
||||||
-lower разрешить ключевые слова и встроенные идентификаторы в
|
-lower разрешить ключевые слова и встроенные идентификаторы в
|
||||||
нижнем регистре
|
нижнем регистре
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
MODULE Compiler;
|
MODULE Compiler;
|
||||||
|
|
||||||
IMPORT ST := STATEMENTS, PARS, UTILS, PATHS, PROG, C := CONSOLE,
|
IMPORT ST := STATEMENTS, PARS, UTILS, PATHS, PROG, C := CONSOLE,
|
||||||
ERRORS, STRINGS, WRITER, MSP430, THUMB, TARGETS, SCAN;
|
ERRORS, STRINGS, WRITER, MSP430, THUMB, TARGETS, SCAN, TEXTDRV;
|
||||||
|
|
||||||
|
|
||||||
CONST
|
CONST
|
||||||
@ -30,6 +30,23 @@ VAR
|
|||||||
major: INTEGER;
|
major: INTEGER;
|
||||||
checking: SET;
|
checking: SET;
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE getVal (VAR i: INTEGER; VAR value: INTEGER);
|
||||||
|
VAR
|
||||||
|
param: PARS.PATH;
|
||||||
|
val: INTEGER;
|
||||||
|
BEGIN
|
||||||
|
INC(i);
|
||||||
|
UTILS.GetArg(i, param);
|
||||||
|
IF STRINGS.StrToInt(param, val) THEN
|
||||||
|
value := val
|
||||||
|
END;
|
||||||
|
IF param[0] = "-" THEN
|
||||||
|
DEC(i)
|
||||||
|
END
|
||||||
|
END getVal;
|
||||||
|
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
out := "";
|
out := "";
|
||||||
checking := options.checking;
|
checking := options.checking;
|
||||||
@ -57,25 +74,14 @@ BEGIN
|
|||||||
out := param
|
out := param
|
||||||
END
|
END
|
||||||
|
|
||||||
|
ELSIF param = "-tab" THEN
|
||||||
|
getVal(i, options.tab)
|
||||||
|
|
||||||
ELSIF param = "-ram" THEN
|
ELSIF param = "-ram" THEN
|
||||||
INC(i);
|
getVal(i, options.ram)
|
||||||
UTILS.GetArg(i, param);
|
|
||||||
IF STRINGS.StrToInt(param, value) THEN
|
|
||||||
options.ram := value
|
|
||||||
END;
|
|
||||||
IF param[0] = "-" THEN
|
|
||||||
DEC(i)
|
|
||||||
END
|
|
||||||
|
|
||||||
ELSIF param = "-rom" THEN
|
ELSIF param = "-rom" THEN
|
||||||
INC(i);
|
getVal(i, options.rom)
|
||||||
UTILS.GetArg(i, param);
|
|
||||||
IF STRINGS.StrToInt(param, value) THEN
|
|
||||||
options.rom := value
|
|
||||||
END;
|
|
||||||
IF param[0] = "-" THEN
|
|
||||||
DEC(i)
|
|
||||||
END
|
|
||||||
|
|
||||||
ELSIF param = "-nochk" THEN
|
ELSIF param = "-nochk" THEN
|
||||||
INC(i);
|
INC(i);
|
||||||
@ -182,6 +188,7 @@ VAR
|
|||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
options.stack := 2;
|
options.stack := 2;
|
||||||
|
options.tab := TEXTDRV.defTabSize;
|
||||||
options.version := 65536;
|
options.version := 65536;
|
||||||
options.pic := FALSE;
|
options.pic := FALSE;
|
||||||
options.lower := FALSE;
|
options.lower := FALSE;
|
||||||
@ -237,6 +244,7 @@ BEGIN
|
|||||||
C.StringLn(" -ver <major.minor> set version of program (KolibriOS DLL)"); C.Ln;
|
C.StringLn(" -ver <major.minor> set version of program (KolibriOS DLL)"); C.Ln;
|
||||||
C.StringLn(" -ram <size> set size of RAM in bytes (MSP430) or Kbytes (STM32)"); C.Ln;
|
C.StringLn(" -ram <size> set size of RAM in bytes (MSP430) or Kbytes (STM32)"); C.Ln;
|
||||||
C.StringLn(" -rom <size> set size of ROM in bytes (MSP430) or Kbytes (STM32)"); C.Ln;
|
C.StringLn(" -rom <size> set size of ROM in bytes (MSP430) or Kbytes (STM32)"); C.Ln;
|
||||||
|
C.StringLn(" -tab <width> set width for tabs"); C.Ln;
|
||||||
UTILS.Exit(0)
|
UTILS.Exit(0)
|
||||||
END;
|
END;
|
||||||
|
|
||||||
@ -285,6 +293,7 @@ BEGIN
|
|||||||
STRINGS.append(lib_path, UTILS.slash);
|
STRINGS.append(lib_path, UTILS.slash);
|
||||||
|
|
||||||
keys(options, outname);
|
keys(options, outname);
|
||||||
|
TEXTDRV.setTabSize(options.tab);
|
||||||
IF outname = "" THEN
|
IF outname = "" THEN
|
||||||
outname := path;
|
outname := path;
|
||||||
STRINGS.append(outname, modname);
|
STRINGS.append(outname, modname);
|
||||||
|
@ -71,7 +71,7 @@ TYPE
|
|||||||
|
|
||||||
OPTIONS* = RECORD
|
OPTIONS* = RECORD
|
||||||
|
|
||||||
version*, stack*, ram*, rom*: INTEGER;
|
version*, stack*, ram*, rom*, tab*: INTEGER;
|
||||||
pic*, lower*: BOOLEAN;
|
pic*, lower*: BOOLEAN;
|
||||||
checking*: SET
|
checking*: SET
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
(*
|
(*
|
||||||
BSD 2-Clause License
|
BSD 2-Clause License
|
||||||
|
|
||||||
Copyright (c) 2018-2020, Anton Krotov
|
Copyright (c) 2018-2021, Anton Krotov
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
*)
|
*)
|
||||||
|
|
||||||
@ -12,10 +12,12 @@ IMPORT FILES, C := COLLECTIONS;
|
|||||||
|
|
||||||
CONST
|
CONST
|
||||||
|
|
||||||
CR = 0DX; LF = 0AX;
|
CR = 0DX; LF = 0AX; HT = 9X;
|
||||||
|
|
||||||
CHUNK = 1024 * 256;
|
CHUNK = 1024 * 256;
|
||||||
|
|
||||||
|
defTabSize* = 4;
|
||||||
|
|
||||||
|
|
||||||
TYPE
|
TYPE
|
||||||
|
|
||||||
@ -45,6 +47,7 @@ TYPE
|
|||||||
VAR
|
VAR
|
||||||
|
|
||||||
texts: C.COLLECTION;
|
texts: C.COLLECTION;
|
||||||
|
TabSize: INTEGER;
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE load (text: TEXT);
|
PROCEDURE load (text: TEXT);
|
||||||
@ -91,8 +94,11 @@ BEGIN
|
|||||||
text.eol := FALSE
|
text.eol := FALSE
|
||||||
END;
|
END;
|
||||||
text.CR := FALSE
|
text.CR := FALSE
|
||||||
|
ELSIF c = HT THEN
|
||||||
|
text.col := text.col + TabSize - text.col MOD TabSize;
|
||||||
|
text.eol := FALSE;
|
||||||
|
text.CR := FALSE
|
||||||
ELSE
|
ELSE
|
||||||
text.eol := FALSE;
|
|
||||||
IF text.utf8 THEN
|
IF text.utf8 THEN
|
||||||
IF ORD(c) DIV 64 # 2 THEN
|
IF ORD(c) DIV 64 # 2 THEN
|
||||||
INC(text.col)
|
INC(text.col)
|
||||||
@ -100,7 +106,8 @@ BEGIN
|
|||||||
ELSE
|
ELSE
|
||||||
INC(text.col)
|
INC(text.col)
|
||||||
END;
|
END;
|
||||||
text.CR := FALSE
|
text.eol := FALSE;
|
||||||
|
text.CR := FALSE
|
||||||
END
|
END
|
||||||
|
|
||||||
END
|
END
|
||||||
@ -187,6 +194,17 @@ BEGIN
|
|||||||
END open;
|
END open;
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE setTabSize* (n: INTEGER);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
IF (0 < n) & (n <= 64) THEN
|
||||||
|
TabSize := n
|
||||||
|
ELSE
|
||||||
|
TabSize := defTabSize
|
||||||
|
END
|
||||||
|
END setTabSize;
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
TabSize := defTabSize;
|
||||||
texts := C.create()
|
texts := C.create()
|
||||||
END TEXTDRV.
|
END TEXTDRV.
|
@ -23,8 +23,8 @@ CONST
|
|||||||
max32* = 2147483647;
|
max32* = 2147483647;
|
||||||
|
|
||||||
vMajor* = 1;
|
vMajor* = 1;
|
||||||
vMinor* = 52;
|
vMinor* = 53;
|
||||||
Date* = "07-may-2021";
|
Date* = "26-aug-2021";
|
||||||
|
|
||||||
FILE_EXT* = ".ob07";
|
FILE_EXT* = ".ob07";
|
||||||
RTL_NAME* = "RTL";
|
RTL_NAME* = "RTL";
|
||||||
|
Loading…
Reference in New Issue
Block a user