aboutsummaryrefslogtreecommitdiff
path: root/build/parser.cxx
AgeCommit message (Collapse)AuthorFilesLines
2015-03-04Treat names that end with directory separators as directoriesBoris Kolpackov1-21/+44
2015-03-04Move roots and bases to appropriate scopesBoris Kolpackov1-36/+66
2015-03-03Use names() to handle include/source, support include of directoriesBoris Kolpackov1-20/+51
This gives us variable expansion and directory prefixes. Also, in include, if the path is a directory (either ends with / or has dir{} type), then we append 'buildfile'.
2015-03-03Implement new default target logic, canonical directory name (empty value)Boris Kolpackov1-135/+139
The logic is as follows: if we have an explicit current directory target, then that's the default target. Otherwise, we take the first target and use it as a prerequisite to create an implicit current directory target, effectively making it the default target via an alias. If there are no targets in this buildfile, then we don't do anything.
2015-03-02Implement variable expansionBoris Kolpackov1-17/+178
2015-03-02Indicate whether token is separated from previous one by whitespacesBoris Kolpackov1-1/+1
2015-03-02Clean up clang warningsBoris Kolpackov1-7/+8
2015-02-27Variable assignment, appending supportBoris Kolpackov1-17/+101
2015-02-24Use prefix_map for scopes, establish root scopeBoris Kolpackov1-5/+20
2015-02-23Redo rule match/build logicBoris Kolpackov1-6/+6
Now the rule is fully responsible for searching, matching, and building of prerequisites.
2015-02-20Get rid of parse_ prefix in parser function namesBoris Kolpackov1-21/+21
2015-02-20Rework extension handling logicBoris Kolpackov1-6/+6
We no longer support hxx{vector.}. Rather, the target type can decide, e.g., based on a config variable, whether to append an extension. Also, in the future we may support a syntax to specify that this is a complete name, e.g., hxx{'vector'}.
2015-02-19Add support for sourcing/including buildfiles, print, dir{} aliasBoris Kolpackov1-91/+343
2015-01-20Diagnostic infrastructure revampBoris Kolpackov1-58/+29
2015-01-16Add support for directory prefixesBoris Kolpackov1-15/+53
For example: cxx{driver ../{foo bar}} cxx{driver} ../cxx{foo bar}
2015-01-16Implement rule chaining for cxx::linkBoris Kolpackov1-58/+5
2015-01-14Track file extension in target, prerequisiteBoris Kolpackov1-8/+76
2015-01-08Implement tracing supportBoris Kolpackov1-0/+1
Also use to-relative path translation in diagnostics.
2014-12-18Initial support for loading dependency info from buildfilesBoris Kolpackov1-19/+155
Also a new iteration on the overall architecture. Now, for the first time, build can read the buildfile and build itself. g++-4.9 -std=c++14 -g -I.. -o bd bd.cxx algorithm.cxx scope.cxx parser.cxx lexer.cxx target.cxx prerequisite.cxx rule.cxx native.cxx cxx/target.cxx cxx/rule.cxx process.cxx timestamp.cxx path.cxx g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx ../../../build/parser.cxx ../../../build/scope.cxx ../../../build/target.cxx ../../../build/native.cxx ../../../build/prerequisite.cxx ../../../build/path.cxx ../../../build/timestamp.cxx
2014-12-15Parse directory scopesBoris Kolpackov1-36/+119
2014-12-12Initial buildfile parser implementationBoris Kolpackov1-0/+167
g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx ../../../build/parser.cxx && ./driver