polserver/testsuite/escript/interstring/interstring01.out

52 lines
384 B
Text
Raw Permalink Normal View History

Add support for interpolated strings ("interstrings") (#369) * Update grammar to support interpolated strings * Struct initializers, case switchs are regular strings * Initial stub for interpolated string in AST This splits the previous STRING_LITERAL terminal into a production, stringLiteral, to handle REGULAR_STRING terminal and interpolatedString production. * Change interpolated strings to expressions * Fix mode handling in grammar * Grammar fixes - Fix mode handling in lexer - Interpolated strings only have one expression * Can successfully parse, stub compile interstrings $"He {there + print("hello")}"; * Add formatting string to grammar * Fix tests, and add test stubs * Rename curleys to brace; better AST generation * initial work interstring instruction * Initial work on formatted string instruction: emit * Formatted string instruction: execution * Add simple formatted string test * Add formatted string test src * Review changes #1 - Rename `FormattedString` to `FormatExpression` - Rename overloaded `try_to_format()` to `get_formatted()` * Review changes part 2 - Rename `InterpolatedString` ast node to `InterpolateString` * Review changes part 3 - Modify `ins_interpolate_string` * Review changes part 4 - Remove unused formal parameter * Add negative tests * Spruce up positive tests * Fix braces, escape chars inside interstring * Fix, add tests for escaped char and double brace * Address differences for new lines in tests * Update Escript version * Make empty expression an error * Add documentation for interpolated strings * Quick touchup on docs
2021-03-11 22:48:16 +01:00
1.
String
2.
String
foo
3.
String
1
4.
String
47835.9
5.
String
foo
6.
String
1bar
7.
String
foobar
8.
String
<uninitialized object>
9.
String
!<uninitialized object>
10.
String
<uninitialized object>!
11.
String
!<uninitialized object>!
12.
String
97
13.
String
0xbeef
14.
String
Hello <needs Int>
15.
String
Hello, FunctionObject
16.
String
HelloabcWorld
17.
String
Hello, {1_2_3}