Subversion Repositories Kolibri OS

Rev

Rev 7983 | Rev 8859 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7983 Rev 8097
Line 6... Line 6...
6
*)
6
*)
Line 7... Line 7...
7
 
7
 
Line 8... Line 8...
8
MODULE Compiler;
8
MODULE Compiler;
9
 
9
 
Line 10... Line 10...
10
IMPORT ST := STATEMENTS, PARS, UTILS, PATHS, PROG, C := CONSOLE,
10
IMPORT ST := STATEMENTS, PARS, UTILS, PATHS, PROG, C := CONSOLE,
11
       ERRORS, STRINGS, WRITER, MSP430, THUMB, TARGETS;
11
       ERRORS, STRINGS, WRITER, MSP430, THUMB, TARGETS, SCAN;
12
 
12
 
13
 
13
 
14
PROCEDURE keys (VAR options: PROG.OPTIONS; VAR out: PARS.PATH);
14
PROCEDURE keys (VAR options: PROG.OPTIONS; VAR out: PARS.PATH);
15
VAR
15
VAR
16
    param: PARS.PATH;
16
    param: PARS.PATH;
17
    i, j:  INTEGER;
17
    i, j:  INTEGER;
18
    end:   BOOLEAN;
18
    _end:  BOOLEAN;
Line 19... Line 19...
19
    value: INTEGER;
19
    value: INTEGER;
20
    minor,
20
    minor,
21
    major: INTEGER;
21
    major: INTEGER;
22
    checking: SET;
22
    checking: SET;
23
 
23
 
24
BEGIN
24
BEGIN
25
    out := "";
25
    out := "";
Line 26... Line 26...
26
    checking := options.checking;
26
    checking := options.checking;
Line 111... Line 111...
111
            END;
111
            END;
112
            IF param[0] = "-" THEN
112
            IF param[0] = "-" THEN
113
                DEC(i)
113
                DEC(i)
114
            END
114
            END
Line -... Line 115...
-
 
115
 
-
 
116
        ELSIF param = "-lower" THEN
-
 
117
            options.lower := TRUE
115
 
118
 
116
        ELSIF param = "-pic" THEN
119
        ELSIF param = "-pic" THEN
Line -... Line 120...
-
 
120
            options.pic := TRUE
-
 
121
 
-
 
122
        ELSIF param = "-def" THEN
-
 
123
            INC(i);
-
 
124
            UTILS.GetArg(i, param);
117
            options.pic := TRUE
125
            SCAN.NewDef(param)
118
 
126
 
Line 119... Line 127...
119
        ELSIF param = "" THEN
127
        ELSIF param = "" THEN
120
            end := TRUE
128
            _end := TRUE
121
 
129
 
Line 122... Line 130...
122
        ELSE
130
        ELSE
123
            ERRORS.BadParam(param)
131
            ERRORS.BadParam(param)
Line 124... Line 132...
124
        END;
132
        END;
125
 
133
 
Line 163... Line 171...
163
 
171
 
164
BEGIN
172
BEGIN
165
    options.stack := 2;
173
    options.stack := 2;
166
    options.version := 65536;
174
    options.version := 65536;
-
 
175
    options.pic := FALSE;
167
    options.pic := FALSE;
176
    options.lower := FALSE;
Line 168... Line 177...
168
    options.checking := ST.chkALL;
177
    options.checking := ST.chkALL;
169
 
178
 
Line 201... Line 210...
201
        C.StringLn("optional settings:"); C.Ln;
210
        C.StringLn("optional settings:"); C.Ln;
202
        C.StringLn("  -out       output"); C.Ln;
211
        C.StringLn("  -out       output"); C.Ln;
203
        C.StringLn("  -stk            set size of stack in Mbytes (Windows, Linux, KolibriOS)"); C.Ln;
212
        C.StringLn("  -stk            set size of stack in Mbytes (Windows, Linux, KolibriOS)"); C.Ln;
204
        C.StringLn("  -nochk <'ptibcwra'>   disable runtime checking (pointers, types, indexes,");
213
        C.StringLn("  -nochk <'ptibcwra'>   disable runtime checking (pointers, types, indexes,");
205
        C.StringLn("                        BYTE, CHR, WCHR)"); C.Ln;
214
        C.StringLn("                        BYTE, CHR, WCHR)"); C.Ln;
-
 
215
        C.StringLn("  -lower                allow lower case for keywords"); C.Ln;
-
 
216
        C.StringLn("  -def      define conditional compilation symbol"); C.Ln;
206
        C.StringLn("  -ver     set version of program (KolibriOS DLL)"); C.Ln;
217
        C.StringLn("  -ver     set version of program (KolibriOS DLL)"); C.Ln;
207
        C.StringLn("  -ram            set size of RAM in bytes (MSP430) or Kbytes (STM32)"); C.Ln;
218
        C.StringLn("  -ram            set size of RAM in bytes (MSP430) or Kbytes (STM32)"); C.Ln;
208
        C.StringLn("  -rom            set size of ROM in bytes (MSP430) or Kbytes (STM32)"); C.Ln;
219
        C.StringLn("  -rom            set size of ROM in bytes (MSP430) or Kbytes (STM32)"); C.Ln;
209
        UTILS.Exit(0)
220
        UTILS.Exit(0)
210
    END;
221
    END;
Line 224... Line 235...
224
    UTILS.GetArg(2, param);
235
    UTILS.GetArg(2, param);
225
    IF param = "" THEN
236
    IF param = "" THEN
226
        ERRORS.Error(205)
237
        ERRORS.Error(205)
227
    END;
238
    END;
Line -... Line 239...
-
 
239
 
-
 
240
    SCAN.NewDef(param);
228
 
241
 
229
    IF TARGETS.Select(param) THEN
242
    IF TARGETS.Select(param) THEN
230
        target := TARGETS.target
243
        target := TARGETS.target
231
    ELSE
244
    ELSE
232
        ERRORS.Error(206)
245
        ERRORS.Error(206)