Добавлен параметр -tab, определяющий ширину табуляции

This commit is contained in:
AntKrotov committed 2021-08-26 11:48:15 +03:00
1 parent a8f1dba7cc
commit 173610f6c4
11 files changed
+56 -24

No files matched your search

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+2
View File
@@ -15,6 +15,8 @@ UTF-8 с BOM-сигнатурой.
совпадает с именем главного модуля, но с расширением ".hex"
-ram <size> размер ОЗУ в байтах (128 - 2048) по умолчанию 128
-rom <size> размер ПЗУ в байтах (2048 - 24576) по умолчанию 2048
-tab <width> размер табуляции (используется для вычисления координат в
исходном коде), по умолчанию - 4
-nochk <"ptibcwra"> отключить проверки при выполнении
-lower разрешить ключевые слова и встроенные идентификаторы в
нижнем регистре
+2
View File
@@ -15,6 +15,8 @@ UTF-8 с BOM-сигнатурой.
совпадает с именем главного модуля, но с расширением ".hex"
-ram <size> размер ОЗУ в килобайтах (4 - 65536) по умолчанию 4
-rom <size> размер ПЗУ в килобайтах (16 - 65536) по умолчанию 16
-tab <width> размер табуляции (используется для вычисления координат в
исходном коде), по умолчанию - 4
-nochk <"ptibcwra"> отключить проверки при выполнении
-lower разрешить ключевые слова и встроенные идентификаторы в
нижнем регистре
+2
View File
@@ -24,6 +24,8 @@ UTF-8 с BOM-сигнатурой.
(соответствует типу исполняемого файла)
-stk <size> размер стэка в мегабайтах (по умолчанию 2 Мб,
допустимо от 1 до 32 Мб)
-tab <width> размер табуляции (используется для вычисления координат в
исходном коде), по умолчанию - 4
-nochk <"ptibcwra"> отключить проверки при выполнении (см. ниже)
-lower разрешить ключевые слова и встроенные идентификаторы в
нижнем регистре
+2
View File
@@ -22,6 +22,8 @@ UTF-8 с BOM-сигнатурой.
(соответствует типу исполняемого файла)
-stk <size> размер стэка в мегабайтах (по умолчанию 2 Мб,
допустимо от 1 до 32 Мб)
-tab <width> размер табуляции (используется для вычисления координат в
исходном коде), по умолчанию - 4
-nochk <"ptibcwra"> отключить проверки при выполнении
-lower разрешить ключевые слова и встроенные идентификаторы в
нижнем регистре
+23 -16
View File
@@ -30,6 +30,23 @@ VAR
major: INTEGER;
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
out := "";
checking := options.checking;
@@ -57,25 +74,14 @@ BEGIN
out := param
END
ELSIF param = "-tab" THEN
getVal(i, options.tab)
ELSIF param = "-ram" THEN
INC(i);
UTILS.GetArg(i, param);
IF STRINGS.StrToInt(param, value) THEN
options.ram := value
END;
IF param[0] = "-" THEN
DEC(i)
END
getVal(i, options.ram)
ELSIF param = "-rom" THEN
INC(i);
UTILS.GetArg(i, param);
IF STRINGS.StrToInt(param, value) THEN
options.rom := value
END;
IF param[0] = "-" THEN
DEC(i)
END
getVal(i, options.rom)
ELSIF param = "-nochk" THEN
INC(i);
@@ -237,6 +243,7 @@ BEGIN
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(" -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)
END;
+2 -2
View File
@@ -71,7 +71,7 @@ TYPE
OPTIONS* = RECORD
version*, stack*, ram*, rom*: INTEGER;
version*, stack*, ram*, rom*, tab*: INTEGER;
pic*, lower*: BOOLEAN;
checking*: SET
@@ -1211,7 +1211,7 @@ END ResetLocSize;
PROCEDURE create* (options: OPTIONS);
BEGIN
LowerCase := options.lower;
SCAN.init(options.lower);
SCAN.init(options.lower, options.tab);
idents := C.create();
UTILS.SetBitDepth(TARGETS.BitDepth, TARGETS.RealSize = 8);
+2 -1
View File
@@ -711,12 +711,13 @@ BEGIN
END close;
PROCEDURE init* (lower: BOOLEAN);
PROCEDURE init* (lower: BOOLEAN; TabSize: INTEGER);
VAR
i: INTEGER;
delim: ARRAY 23 OF CHAR;
BEGIN
TXT.setTabSize(TabSize);
upto := FALSE;
LowerCase := lower;
+19 -3
View File
@@ -1,7 +1,7 @@
(*
BSD 2-Clause License
Copyright (c) 2018-2020, Anton Krotov
Copyright (c) 2018-2021, Anton Krotov
All rights reserved.
*)
@@ -12,7 +12,7 @@ IMPORT FILES, C := COLLECTIONS;
CONST
CR = 0DX; LF = 0AX;
CR = 0DX; LF = 0AX; HT = 9X;
CHUNK = 1024 * 256;
@@ -45,6 +45,7 @@ TYPE
VAR
texts: C.COLLECTION;
TabSize: INTEGER;
PROCEDURE load (text: TEXT);
@@ -91,8 +92,11 @@ BEGIN
text.eol := FALSE
END;
text.CR := FALSE
ELSIF c = HT THEN
text.col := text.col + TabSize - text.col MOD TabSize;
text.eol := FALSE;
text.CR := FALSE
ELSE
text.eol := FALSE;
IF text.utf8 THEN
IF ORD(c) DIV 64 # 2 THEN
INC(text.col)
@@ -100,6 +104,7 @@ BEGIN
ELSE
INC(text.col)
END;
text.eol := FALSE;
text.CR := FALSE
END
@@ -187,6 +192,17 @@ BEGIN
END open;
PROCEDURE setTabSize* (n: INTEGER);
BEGIN
IF (0 < n) & (n <= 64) THEN
TabSize := n
ELSE
TabSize := 4
END
END setTabSize;
BEGIN
setTabSize(0);
texts := C.create()
END TEXTDRV.
+2 -2
View File
@@ -23,8 +23,8 @@ CONST
max32* = 2147483647;
vMajor* = 1;
vMinor* = 52;
Date* = "07-may-2021";
vMinor* = 53;
Date* = "26-aug-2021";
FILE_EXT* = ".ob07";
RTL_NAME* = "RTL";