| 1 | # Tests/100-basics/063-esc-string-subst.cobra |
|---|
| 2 | # Tests for escaping of substitution syntax in strings |
|---|
| 3 | # By hopscc |
|---|
| 4 | #.require. clr |
|---|
| 5 | class Test |
|---|
| 6 | |
|---|
| 7 | def main is shared |
|---|
| 8 | |
|---|
| 9 | a = 99 |
|---|
| 10 | s0 = "a = [a]" |
|---|
| 11 | assert s0 == "a = 99" |
|---|
| 12 | |
|---|
| 13 | s1 = "1:a = \[..[a]..]" |
|---|
| 14 | assert s1 == r"1:a = [..99..]" |
|---|
| 15 | |
|---|
| 16 | s2 = "2:a = \[[a]]" |
|---|
| 17 | assert s2 == r"2:a = [99]" |
|---|
| 18 | |
|---|
| 19 | s2a = "2:a = \\[a]" |
|---|
| 20 | assert s2a == r"2:a = \99" |
|---|
| 21 | |
|---|
| 22 | s3 = "3:a = \[xx: [a]]" |
|---|
| 23 | assert s3 == r"3:a = [xx: 99]" |
|---|
| 24 | |
|---|
| 25 | s4 = "4:a = \[33xx: [a]]" |
|---|
| 26 | assert s4 == r"4:a = [33xx: 99]" |
|---|
| 27 | s4a = '4:a = \[33xx: [a]]' |
|---|
| 28 | assert s4a == r'4:a = [33xx: 99]' |
|---|
| 29 | |
|---|
| 30 | s5 = "4a:a = \[33xx] \[yy]: [a]]" |
|---|
| 31 | assert s5 == r"4a:a = [33xx] [yy]: 99]" |
|---|
| 32 | |
|---|
| 33 | s6 = "5:a = \[valueof(a)] \[b]" |
|---|
| 34 | assert s6 == r"5:a = [valueof(a)] [b]" |
|---|
| 35 | |
|---|
| 36 | s7 = "6:a = [a] a = \[..] [a] " |
|---|
| 37 | assert s7 == r"6:a = 99 a = [..] 99 " |
|---|
| 38 | |
|---|
| 39 | s7a = "7: \[a = ][a]] bigjobs \[[a]] crivens" |
|---|
| 40 | assert s7a == r'7: [a = ]99] bigjobs [99] crivens' |
|---|
| 41 | |
|---|
| 42 | s8 = ns"7:a = \[a][a]" |
|---|
| 43 | assert s8 == r"7:a = [a][a]" |
|---|
| 44 | |
|---|
| 45 | s9 = r"8:a = \[[a]]" |
|---|
| 46 | assert s9 == r"8:a = \[[a]]" |
|---|
| 47 | |
|---|
| 48 | |
|---|
| 49 | s10 = 'FMT:a = '+ ns'[' +'[a]]' |
|---|
| 50 | assert s10 == r'FMT:a = [99]' |
|---|
| 51 | |
|---|
| 52 | |
|---|
| 53 | s12 = 'a = [c'['][a]]' |
|---|
| 54 | assert s12 == r'a = [99]' |
|---|
| 55 | |
|---|
| 56 | b = ns"\\[" |
|---|
| 57 | assert b == r'\[' |
|---|
| 58 | assert b == r"\[" |
|---|
| 59 | assert b <> r'\\{' |
|---|
| 60 | |
|---|
| 61 | b2 = "123 \[ 456" |
|---|
| 62 | assert b2 == r"123 [ 456" |
|---|
| 63 | b2 = '123 \[ 456' |
|---|
| 64 | assert b2 == r"123 [ 456" |
|---|
| 65 | |
|---|
| 66 | b3 = r'123 \[ 456' |
|---|
| 67 | assert b3 == r"123 \[ 456" |
|---|