Kevin Eady
2de1995c19
Fix compiler for escaping } correctly in interpolated strings ( #620 )
...
* Update grammar; add tests
String literals inside an interpolated string cannot start with `}`, as it must be a DOUBLE_RBRACE `}}`
* Fix interpolate string token reading
* Update core-changes
2024-02-06 10:44:26 +01:00
Kevin Eady
593cfffb83
Add uninit, true, false keywords to grammar ( #596 )
...
* Update grammar
* Update expression handling for uninit
* update existing tests
* Add new tests
* Remove fullpath from escriptgrammar generation comment
* fix tests
* Update eScript guide
* Declare escript version 0x11
* Add core-changes
* Add `true` and `false` to grammar
* true/false implementation
* Fix existing tests
* Add new tests
* Update core changes
* add docs
* Fix BooleanValue::describe_to
* bool optimizations
* optimize uninit
* remove unused var assignments
* Update grammar for case labels for uninit, booleans
* Fix case label handling for uninit, true, false
* Tests
* Fix compiler version display v1.1700000017881393 -> v1.17
* optimize boolean binary operations
* fix unary boolean optimizer
* add boolean, uninit optimizer test
* Use new fmt lib apis
* Fix compiler warning
* really fix warning lol
* Add Executor[Module]::getParam for bools, FindSubstance test
2024-01-20 05:38:25 +01:00
turleypol
cb6750405c
Double to string precision ( #580 )
...
* use std::to_chars for doubles
* fixed cmake errors when an escript error occurs
* macos 13 with clang15
* CI: macos new cache version
* guessing game
* guess no2
* test shipped clang with deloytarget env
* adapted testdata, lets see if all platforms behave the same
* explicit test if high precision double can get packed+unpacked
* log testclient receive buffer on error
* added docs
2023-12-20 22:13:39 +01:00
Kevin Eady
e41f70d72e
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