aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/lexer.cxx
AgeCommit message (Collapse)AuthorFilesLines
2020-05-27Add support for value subscript after expansionsadhoc-recipe-historyBoris Kolpackov1-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($x)[$z])
2020-05-27Handle multi-curly-brace tokens in lexerBoris Kolpackov1-3/+121
2020-05-27Add lexer mode dataBoris Kolpackov1-2/+2
2020-05-27Add recognition for line-leading `%` as tokenBoris Kolpackov1-11/+35
2020-05-01Fix outstanding issue with directive vs assignment differentiationBoris Kolpackov1-5/+18
Specifically, now the following does the right thing: print +foo
2020-03-20Lexer support for default value assignment (?=)Boris Kolpackov1-6/+17
Note: not yet supported in the parser.
2020-02-07Drop copyright notice from source codeKaren Arutyunov1-1/+0
2019-11-15Generalize attributes to be comma-separated with arbitrary valuesBoris Kolpackov1-8/+22
Before: x = [string null] After: x = [string, null]
2019-11-14Tighten up attribute recognition during parsingBoris Kolpackov1-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-30Reserve `:` in `case` pattern expression for future match extraction supportBoris Kolpackov1-5/+6
2019-09-30Add support for custom match/extract functions in switch expressionBoris Kolpackov1-5/+29
2019-09-30Add support for `case` pattern alternativesBoris Kolpackov1-2/+25
case <pattern>[ | <pattern>...]
2019-09-30Pattern matching support (switch): multiple values implementationBoris Kolpackov1-4/+11
2019-07-01Split build system into library and driverBoris Kolpackov1-0/+720