mirror of
https://github.com/AntKrotov/oberon-07-compiler.git
synced 2026-10-05 09:45:47 +00:00
Добавлен параметр -tab, определяющий ширину табуляции
This commit is contained in:
1 parent
a8f1dba7cc
commit
173610f6c4
11 files changed
+56
-24
No files matched your search
+23
-16
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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";
|
||||
|
||||
Reference in new issue
Block a user