Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-12-15 | Improve escape sequence support | Boris Kolpackov | 1 | -23/+73 | |
Specifically: 1. In the double-quoted strings we now only do effective escaping of the special `$("\` characters plus `)` for symmetry. 2. There is now support for "escape sequence expansion" in the form $\X where \X can be any of the C/C++ simple escape sequences (\n, \t, etc) plus \0 (which in C/C++ is an octal escape sequence). For example: info "foo$\n$\tbar$\n$\tbaz" Will print: buildfile:1:1: info: foo bar baz | |||||
2022-10-18 | Fix unexpected 'unterminated double-quoted sequence' script error | Karen Arutyunov | 1 | -8/+59 | |
2022-09-29 | Tighten low-verbosity diagnostics name deduction logic | Boris Kolpackov | 1 | -0/+16 | |
Specifically, don't try to derive low-verbosity name from what looks like an eval context of a function call. | |||||
2021-11-23 | Fix multi-line comment parsing to accept trailing eos in place of newline | Boris Kolpackov | 1 | -6/+7 | |
2021-05-28 | Add support for regex-based target type/pattern specific variables | Boris Kolpackov | 1 | -11/+8 | |
This is in addition to the already supported path-based target type/pattern specific variables. For example: hxx{*}: x = y # path-based hxx{~/.*/}: x = y # regex-based | |||||
2021-05-28 | Recognize quoting of first character in token | Boris Kolpackov | 1 | -18/+37 | |
Use this to relax the pattern inclusion/exclusion syntax to only require unquoted +/-. | |||||
2020-07-13 | Reserve backtick (`) and bit-or (|) in eval context for future use | Boris Kolpackov | 1 | -3/+5 | |
Specifically, they are reserved for future support of arithmetic evaluation contexts and evaluation pipelines, respectively. | |||||
2020-06-19 | Fix lexer to fail on invalid UTF-8 sequences | Karen Arutyunov | 1 | -0/+6 | |
2020-06-10 | Handle special variable names when spelled as $(<char>) rather than $<char> | Boris Kolpackov | 1 | -0/+3 | |
2020-06-10 | Handle special variable names in base lexer via mode data | Boris Kolpackov | 1 | -1/+13 | |
2020-06-05 | Add ability to specify ad hoc recipe actions | Boris Kolpackov | 1 | -4/+4 | |
We are reusing the buildspec syntax for that. | |||||
2020-05-27 | Add support for value subscript after expansions | Boris Kolpackov | 1 | -21/+38 | |
Value subscript is only recognized in evaluation contexts (due to ambiguity with wildcard patterns; consider: $x[123].txt) and should be unseparated from the previous token. For example: x = ($y[1]) x = (($f ? $y : $z)[1]) x = ($identity($y)[$z]) | |||||
2020-05-27 | Initial support for ad hoc recipes (still work in progress) | Boris Kolpackov | 1 | -15/+157 | |
2020-05-01 | Fix outstanding issue with directive vs assignment differentiation | Boris Kolpackov | 1 | -5/+18 | |
Specifically, now the following does the right thing: print +foo | |||||
2020-03-20 | Lexer support for default value assignment (?=) | Boris Kolpackov | 1 | -6/+17 | |
Note: not yet supported in the parser. | |||||
2020-02-07 | Drop copyright notice from source code | Karen Arutyunov | 1 | -1/+0 | |
2019-11-15 | Generalize attributes to be comma-separated with arbitrary values | Boris Kolpackov | 1 | -8/+22 | |
Before: x = [string null] After: x = [string, null] | |||||
2019-11-14 | Tighten up attribute recognition during parsing | Boris Kolpackov | 1 | -58/+90 | |
Now it should be possible to use `[]` for wildcard patterns, for example: foo = foo.[hit]xx Note that a leading bracket expression will still be recognized as attributes and escaping or quoting it will inhibit pattern matching. To resolve this case we need to specify an empty attribute list: foo = [] [abc]-foo.cxx | |||||
2019-09-30 | Reserve `:` in `case` pattern expression for future match extraction support | Boris Kolpackov | 1 | -5/+6 | |
2019-09-30 | Add support for custom match/extract functions in switch expression | Boris Kolpackov | 1 | -5/+29 | |
2019-09-30 | Add support for `case` pattern alternatives | Boris Kolpackov | 1 | -2/+25 | |
case <pattern>[ | <pattern>...] | |||||
2019-09-30 | Pattern matching support (switch): multiple values implementation | Boris Kolpackov | 1 | -4/+11 | |
2019-07-01 | Split build system into library and driver | Boris Kolpackov | 1 | -0/+720 | |