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 |
211 | C.StringLn(" -out |
203 | C.StringLn(" -stk |
212 | C.StringLn(" -stk |
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 |
|
206 | C.StringLn(" -ver |
217 | C.StringLn(" -ver |
207 | C.StringLn(" -ram |
218 | C.StringLn(" -ram |
208 | C.StringLn(" -rom |
219 | C.StringLn(" -rom |
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) |