diff options
| author | Peter Lesslie <pclesslie@gmail.com> | 2022-04-15 15:02:14 -0500 |
|---|---|---|
| committer | Eli Schwartz <eschwartz93@gmail.com> | 2022-05-01 12:47:37 -0400 |
| commit | d771fc7d0b45f8fa66f6570720fba73941de67cd (patch) | |
| tree | c75bc9db23d033ed8caaf9a2a979ad3f0e77fbd1 /test cases | |
| parent | 78a6f3bd5c292afb68be7f4fbcd0e8c8ba0e3236 (diff) | |
| download | meson-d771fc7d0b45f8fa66f6570720fba73941de67cd.tar.gz | |
Add support for multiline f-strings
+ Extend the parser to recognize the multiline f-strings, which the
documentation already implies will work.
The syntax is like:
```
x = 'hello'
y = 'world'
msg = f'''This is a multiline string.
Sending a message: '@x@ @y@'
'''
```
which produces:
```
This is a multiline string.
Sending a message: 'hello world'
```
+ Added some f-string tests cases to "62 string arithmetic" to exercise
the new behavior.
Diffstat (limited to 'test cases')
| -rw-r--r-- | test cases/common/62 string arithmetic/meson.build | 43 | ||||
| -rw-r--r-- | test cases/common/62 string arithmetic/test.json | 7 |
2 files changed, 49 insertions, 1 deletions
diff --git a/test cases/common/62 string arithmetic/meson.build b/test cases/common/62 string arithmetic/meson.build index 8ef350ede..194df0d9a 100644 --- a/test cases/common/62 string arithmetic/meson.build +++ b/test cases/common/62 string arithmetic/meson.build @@ -1,4 +1,4 @@ -project('string arithmetic', 'c') +project('string arithmetic', 'c', meson_version: '>=0.62.0') assert('foo' + 'bar' == 'foobar') assert('foo' + 'bar' + 'baz' == 'foobarbaz') @@ -6,3 +6,44 @@ assert('foo' + 'bar' + 'baz' == 'foobarbaz') a = 'a' b = 'b' assert(a + b + 'c' == 'abc') + +# ------------------------------------------------------------------------------ +# format strings: +# ------------------------------------------------------------------------------ +sub1 = 'the' +sub2 = ' quick\n' +sub3 = ' brown' +sub4 = '\nfox' +x = f'@sub1@@sub2@@sub3@@sub4@' + +assert(x == sub1 + sub2 + sub3 + sub4) +assert(x == 'the quick\n brown\nfox') + +# ------------------------------------------------------------------------------ +# multi-line format strings +# ------------------------------------------------------------------------------ +y_actual = f'''This is a multi-line comment with string substition: + "@sub1@@sub2@@sub3@@sub4@" + +And I can even substitute the entry multiple times! + +@sub1@ +@sub2@ +@sub3@ +''' + +y_expect = '''This is a multi-line comment with string substition: + "the quick + brown +fox" + +And I can even substitute the entry multiple times! + +the + quick + + brown +''' +message('actual=' + y_actual) +message('expect=' + y_expect) +assert(y_actual == y_expect) diff --git a/test cases/common/62 string arithmetic/test.json b/test cases/common/62 string arithmetic/test.json new file mode 100644 index 000000000..e3519d050 --- /dev/null +++ b/test cases/common/62 string arithmetic/test.json @@ -0,0 +1,7 @@ +{ + "stdout": [ + { + "line": "test cases/common/62 string arithmetic/meson.build:25: WARNING: Project targeting '>=0.62.0' but tried to use feature introduced in '0.63.0': multiline format strings." + } + ] +} |
