mirror of
https://github.com/open-simh/simtools.git
synced 2026-01-13 15:27:18 +00:00
Attempt bracketing checking.
Too bad we can't issue a diagnostic here now; we just return failure and the caller will probably next try a whitespace delimited string next.
This commit is contained in:
parent
289860e539
commit
54b73f7f9c
14
parse.c
14
parse.c
@ -831,12 +831,18 @@ int brackrange(
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* If we see a newline here, the proper terminator must be missing.
|
||||
* Don't use EOL() to check: it recognizes ';' too.
|
||||
* Unfortunately we can't issue a diagnostic here.
|
||||
*/
|
||||
if (!cp[len] || cp[len] == '\n') {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
*length = len;
|
||||
if (endp) {
|
||||
*endp = cp + len;
|
||||
if (**endp && **endp != '\n') {
|
||||
++*endp; /* skip over ending delimiter */
|
||||
}
|
||||
*endp = cp + len + 1; /* skip over ending delimiter */
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
@ -1,28 +1,55 @@
|
||||
1 .macro tstarg a1,a2,a3,a4
|
||||
2 .narg label
|
||||
3 .endm
|
||||
4
|
||||
5 000000 start: tstarg ; 0 args
|
||||
1 ;;;;;
|
||||
2 ;
|
||||
3 ; Test that commas create empty macro arguments.
|
||||
4 ;
|
||||
5 .macro tstarg a1,a2,a3,a4
|
||||
6 .narg label
|
||||
7 .endm
|
||||
8
|
||||
9 000000 start: tstarg ; 0 args
|
||||
1 000000 .narg label
|
||||
6 000000 tstarg 123 ; 1 arg
|
||||
10 000000 tstarg 123 ; 1 arg
|
||||
1 000001 .narg label
|
||||
7 000000 tstarg 1, ; 2 args
|
||||
11 000000 tstarg 1, ; 2 args
|
||||
1 000002 .narg label
|
||||
8 000000 tstarg ,2 ; 2 args
|
||||
12 000000 tstarg ,2 ; 2 args
|
||||
1 000002 .narg label
|
||||
9 000000 tstarg , ; 2 args
|
||||
13 000000 tstarg , ; 2 args
|
||||
1 000002 .narg label
|
||||
10 000000 tstarg ,, ; 3 args
|
||||
14 000000 tstarg ,, ; 3 args
|
||||
1 000003 .narg label
|
||||
11 000000 tstarg 1,, ; 3 args
|
||||
15 000000 tstarg 1,, ; 3 args
|
||||
1 000003 .narg label
|
||||
12 000000 tstarg ,,3 ; 3 args
|
||||
16 000000 tstarg ,,3 ; 3 args
|
||||
1 000003 .narg label
|
||||
13 000000 tstarg 1,,3 ; 3 args
|
||||
17 000000 tstarg 1,,3 ; 3 args
|
||||
1 000003 .narg label
|
||||
14 000000 tstarg 1,2,3 ; 3 args
|
||||
18 000000 tstarg 1,2,3 ; 3 args
|
||||
1 000003 .narg label
|
||||
14
|
||||
19
|
||||
20 ;;;;;
|
||||
21 ;
|
||||
22 ; Test what happens if we have invalid bracketed strings.
|
||||
23 ; For now we fall back to treating them like unbracketed strings,
|
||||
24 ; that will hopefully alert the user the best.
|
||||
25 ;
|
||||
26 .macro braket arg
|
||||
27 ; arg
|
||||
28 .endm
|
||||
29
|
||||
30 000000 braket <plain>
|
||||
1 ; plain
|
||||
31 000000 braket ^/simple/
|
||||
1 ; simple
|
||||
32 000000 braket <broken
|
||||
1 ; <broken
|
||||
33 000000 braket ^/broken
|
||||
1 ; ^/broken
|
||||
34 000000 braket <bro<ken>
|
||||
1 ; <bro<ken>
|
||||
35 000000 braket <bro<ken> string
|
||||
1 ; <bro<ken>
|
||||
35
|
||||
|
||||
|
||||
Symbol table
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
;;;;;
|
||||
;
|
||||
; Test that commas create empty macro arguments.
|
||||
;
|
||||
.macro tstarg a1,a2,a3,a4
|
||||
.narg label
|
||||
.endm
|
||||
@ -12,3 +16,20 @@ start: tstarg ; 0 args
|
||||
tstarg ,,3 ; 3 args
|
||||
tstarg 1,,3 ; 3 args
|
||||
tstarg 1,2,3 ; 3 args
|
||||
|
||||
;;;;;
|
||||
;
|
||||
; Test what happens if we have invalid bracketed strings.
|
||||
; For now we fall back to treating them like unbracketed strings,
|
||||
; that will hopefully alert the user the best.
|
||||
;
|
||||
.macro braket arg
|
||||
; arg
|
||||
.endm
|
||||
|
||||
braket <plain>
|
||||
braket ^/simple/
|
||||
braket <broken
|
||||
braket ^/broken
|
||||
braket <bro<ken>
|
||||
braket <bro<ken> string
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user