aboutsummaryrefslogtreecommitdiff
path: root/tests/build/parser/driver.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2014-12-18 07:14:53 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2014-12-18 07:14:53 +0200
commitc0c85b67516653c181fbce7c61c2df3e31e4edd8 (patch)
tree535467b029b27b190e35064e4babd62825eba6a1 /tests/build/parser/driver.cxx
parent835ed5f7080a98e9ee80ac08d5585ccdbb63fe0e (diff)
Initial support for loading dependency info from buildfiles
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
Diffstat (limited to 'tests/build/parser/driver.cxx')
-rw-r--r--tests/build/parser/driver.cxx12
1 files changed, 10 insertions, 2 deletions
diff --git a/tests/build/parser/driver.cxx b/tests/build/parser/driver.cxx
index 0b83cb0..a8c8fc9 100644
--- a/tests/build/parser/driver.cxx
+++ b/tests/build/parser/driver.cxx
@@ -7,6 +7,10 @@
#include <iostream>
#include <build/path>
+#include <build/scope>
+#include <build/target>
+#include <build/native>
+
#include <build/lexer>
#include <build/parser>
@@ -19,6 +23,10 @@ parse (const char*);
int
main ()
{
+ target_types.insert (file::static_type);
+ target_types.insert (exe::static_type);
+ target_types.insert (obj::static_type);
+
assert (parse (""));
assert (parse ("foo:"));
assert (parse ("foo bar:"));
@@ -36,7 +44,7 @@ main ()
assert (parse ("exe{foo bar}:"));
assert (parse ("{exe{foo bar}}:"));
assert (parse ("exe{{foo bar} fox}:"));
- assert (parse ("exe{foo}: obj{bar baz} biz.o lib{fox}"));
+ assert (parse ("exe{foo}: obj{bar baz} biz.o file{fox}"));
assert (!parse (":"));
assert (!parse ("foo"));
@@ -77,7 +85,7 @@ parse (const char* s)
try
{
- p.parse (is, path ());
+ p.parse (is, path (), scopes[path::current ()]);
}
catch (const parser_error&)
{