Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 9176 → Rev 9177

/programs/develop/oberon07/Compiler
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/develop/oberon07/Compiler.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/develop/oberon07/Compiler.kex
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/develop/oberon07/doc/x86.txt
24,6 → 24,8
(соответствует типу исполняемого файла)
-stk <size> размер стэка в мегабайтах (по умолчанию 2 Мб,
допустимо от 1 до 32 Мб)
-tab <width> размер табуляции (используется для вычисления координат в
исходном коде), по умолчанию - 4
-nochk <"ptibcwra"> отключить проверки при выполнении (см. ниже)
-lower разрешить ключевые слова и встроенные идентификаторы в
нижнем регистре
/programs/develop/oberon07/doc/x86_64.txt
22,6 → 22,8
(соответствует типу исполняемого файла)
-stk <size> размер стэка в мегабайтах (по умолчанию 2 Мб,
допустимо от 1 до 32 Мб)
-tab <width> размер табуляции (используется для вычисления координат в
исходном коде), по умолчанию - 4
-nochk <"ptibcwra"> отключить проверки при выполнении
-lower разрешить ключевые слова и встроенные идентификаторы в
нижнем регистре
/programs/develop/oberon07/source/Compiler.ob07
8,7 → 8,7
MODULE Compiler;
 
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
30,7 → 30,24
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;
_end := FALSE;
57,25 → 74,14
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);
182,6 → 188,7
 
BEGIN
options.stack := 2;
options.tab := TEXTDRV.defTabSize;
options.version := 65536;
options.pic := FALSE;
options.lower := FALSE;
237,6 → 244,7
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;
 
285,6 → 293,7
STRINGS.append(lib_path, UTILS.slash);
 
keys(options, outname);
TEXTDRV.setTabSize(options.tab);
IF outname = "" THEN
outname := path;
STRINGS.append(outname, modname);
/programs/develop/oberon07/source/PROG.ob07
71,7 → 71,7
 
OPTIONS* = RECORD
 
version*, stack*, ram*, rom*: INTEGER;
version*, stack*, ram*, rom*, tab*: INTEGER;
pic*, lower*: BOOLEAN;
checking*: SET
 
/programs/develop/oberon07/source/TEXTDRV.ob07
1,7 → 1,7
(*
BSD 2-Clause License
 
Copyright (c) 2018-2020, Anton Krotov
Copyright (c) 2018-2021, Anton Krotov
All rights reserved.
*)
 
12,11 → 12,13
 
CONST
 
CR = 0DX; LF = 0AX;
CR = 0DX; LF = 0AX; HT = 9X;
 
CHUNK = 1024 * 256;
 
defTabSize* = 4;
 
 
TYPE
 
TEXT* = POINTER TO RECORD (C.ITEM)
45,6 → 47,7
VAR
 
texts: C.COLLECTION;
TabSize: INTEGER;
 
 
PROCEDURE load (text: TEXT);
91,8 → 94,11
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 → 106,7
ELSE
INC(text.col)
END;
text.eol := FALSE;
text.CR := FALSE
END
 
187,6 → 194,17
END open;
 
 
PROCEDURE setTabSize* (n: INTEGER);
BEGIN
IF (0 < n) & (n <= 64) THEN
TabSize := n
ELSE
TabSize := defTabSize
END
END setTabSize;
 
 
BEGIN
TabSize := defTabSize;
texts := C.create()
END TEXTDRV.
/programs/develop/oberon07/source/UTILS.ob07
23,8 → 23,8
max32* = 2147483647;
 
vMajor* = 1;
vMinor* = 52;
Date* = "07-may-2021";
vMinor* = 53;
Date* = "26-aug-2021";
 
FILE_EXT* = ".ob07";
RTL_NAME* = "RTL";