aboutsummaryrefslogtreecommitdiff
path: root/build/lexer.cxx
AgeCommit message (Collapse)AuthorFilesLines
2015-12-14Fix bugs in keyword recognition logicBoris Kolpackov1-4/+2
2015-12-14Add support for variable prepend operator: =+Boris Kolpackov1-21/+33
2015-12-07Add support for specifying minimum required build2 versionBoris Kolpackov1-0/+13
The syntax is: using build@0.1.0-a1 The idea is that we will later also use it for modules and 'build' is a special, the "build system itself" module. Also fix a problem with peeking and lexer mode switching.
2015-09-10Add support for token pre-processing in lexerBoris Kolpackov1-0/+9
2015-09-09For newline escaping, ignore whole thing instead of making it newlineBoris Kolpackov1-5/+4
To capture literal newline, use quoting.
2015-09-09Add support for quoting directive namesBoris Kolpackov1-1/+6
Now only unquoted, literal names are recognized as directives, for example: 'print' = abc print $print
2015-09-09Add support for evaluation contextBoris Kolpackov1-36/+60
For now it acts as just the value mode that can be enabled anywhere variable expansion is supported, for example: (foo=bar): And the primary use currently is to enable/test quoted and indirect variable expansion: "foo bar" = FOO BAR print $"foo bar" # Invalid. print $("foo bar") # Yeah, baby. foo = FOO FOO = foo print $($foo) Not that you should do something like this...
2015-09-09Reimplement double quote lexing to avoid "implied quote" trickBoris Kolpackov1-98/+93
2015-09-08Initial take on double quote supportBoris Kolpackov1-15/+84
Currently, $(foo)-style variable expansion is not supported.
2015-09-08Use mode stack in lexerBoris Kolpackov1-16/+16
2015-09-08Implement single quote supportBoris Kolpackov1-4/+35
2015-09-08Clean up lexer mode logicBoris Kolpackov1-2/+0
2015-08-27Dist module/meta-operation initial implementationBoris Kolpackov1-4/+1
2015-06-18Add char-scanner to libbutl, use in libbpkg and build2Boris Kolpackov1-75/+9
2015-05-11Correct copyrightBoris Kolpackov1-1/+1
2015-03-30Add support for configurable pair separator, use @ instead of = in buildspecBoris Kolpackov1-35/+11
2015-03-06Add support for lexing and parsing name pairsBoris Kolpackov1-17/+60
We will need it for the buildspec and also if/when we support map variable types.
2015-03-02Implement variable expansionBoris Kolpackov1-0/+37
2015-03-02Indicate whether token is separated from previous one by whitespacesBoris Kolpackov1-72/+87
2015-03-02Implement value lexing modeBoris Kolpackov1-18/+58
So that we can do foo=g++ without having to resort to quoting
2015-03-02Clean up clang warningsBoris Kolpackov1-3/+3
2015-02-27Variable assignment, appending supportBoris Kolpackov1-1/+14
2015-01-20Diagnostic infrastructure revampBoris Kolpackov1-8/+5
2014-12-15Parse directory scopesBoris Kolpackov1-5/+5
2014-12-12Initial buildfile parser implementationBoris Kolpackov1-4/+8
g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx ../../../build/parser.cxx && ./driver
2014-12-12Add test for lexerBoris Kolpackov1-2/+4
g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx && ./driver
2014-12-11Initial lexer implementation for buildfilesBoris Kolpackov1-0/+220