diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2012-11-08 22:47:23 +0000 |
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2012-11-08 22:47:23 +0000 |
| commit | 795d0737fed40d88a7801b451b7750ba90802345 (patch) | |
| tree | b561a10468955d1a893a828446dbeebd225a28f6 /src | |
| parent | 8891504ae11f7ae5ed5e9eb05ec3686564617373 (diff) | |
| download | build-795d0737fed40d88a7801b451b7750ba90802345.tar.gz build-795d0737fed40d88a7801b451b7750ba90802345.tar.bz2 build-795d0737fed40d88a7801b451b7750ba90802345.tar.xz build-795d0737fed40d88a7801b451b7750ba90802345.zip | |
Fixed a few condition issues, and the install script is a little better, I think.
Diffstat (limited to 'src')
| -rw-r--r-- | src/buildparser.cpp | 19 | ||||
| -rw-r--r-- | src/buildparser.h | 1 |
2 files changed, 13 insertions, 7 deletions
diff --git a/src/buildparser.cpp b/src/buildparser.cpp index f5c3132..cf98090 100644 --- a/src/buildparser.cpp +++ b/src/buildparser.cpp | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | #include "buildparser.h" | 1 | #include "buildparser.h" |
| 2 | #include "ast.h" | 2 | #include "ast.h" |
| 3 | #include "build.yy.h" | 3 | #include "build.yy.h" |
| 4 | #include "conditionplugger.h" | ||
| 4 | 5 | ||
| 5 | #include "bu/sio.h" | 6 | #include "bu/sio.h" |
| 6 | using Bu::sio; | 7 | using Bu::sio; |
| @@ -9,6 +10,9 @@ BuildParser::BuildParser( Ast &rAst ) : | |||
| 9 | xAst( rAst ) | 10 | xAst( rAst ) |
| 10 | { | 11 | { |
| 11 | lIncludePaths.append("./"); | 12 | lIncludePaths.append("./"); |
| 13 | StrList lConds = ConditionPlugger::getInstance().getPluginList(); | ||
| 14 | for( StrList::iterator i = lConds.begin(); i; i++ ) | ||
| 15 | hConds.insert( *i, true ); | ||
| 12 | } | 16 | } |
| 13 | 17 | ||
| 14 | BuildParser::~BuildParser() | 18 | BuildParser::~BuildParser() |
| @@ -54,13 +58,14 @@ bool BuildParser::isKeyword( const Bu::String &sStr ) | |||
| 54 | 58 | ||
| 55 | bool BuildParser::isCond( const Bu::String &sStr ) | 59 | bool BuildParser::isCond( const Bu::String &sStr ) |
| 56 | { | 60 | { |
| 57 | if( sStr == "filetime" ) | 61 | try |
| 58 | return true; | 62 | { |
| 59 | if( sStr == "always" ) | 63 | return hConds.get( sStr ); |
| 60 | return true; | 64 | } |
| 61 | if( sStr == "never" ) | 65 | catch(...) |
| 62 | return true; | 66 | { |
| 63 | return false; | 67 | return false; |
| 68 | } | ||
| 64 | } | 69 | } |
| 65 | 70 | ||
| 66 | void BuildParser::include( const Bu::String &sStr, void *scanner, YYLTYPE *loc ) | 71 | void BuildParser::include( const Bu::String &sStr, void *scanner, YYLTYPE *loc ) |
diff --git a/src/buildparser.h b/src/buildparser.h index 7e6e348..53e2a50 100644 --- a/src/buildparser.h +++ b/src/buildparser.h | |||
| @@ -31,6 +31,7 @@ private: | |||
| 31 | Bu::Stack<Bu::String> sFilename; | 31 | Bu::Stack<Bu::String> sFilename; |
| 32 | Bu::Stack<YYLTYPE> sLocation; | 32 | Bu::Stack<YYLTYPE> sLocation; |
| 33 | StrList lIncludePaths; | 33 | StrList lIncludePaths; |
| 34 | Bu::Hash<Bu::String, bool> hConds; | ||
| 34 | }; | 35 | }; |
| 35 | 36 | ||
| 36 | typedef void * yyscan_t; | 37 | typedef void * yyscan_t; |
