diff trunk/src/dil/SettingsLoader.d @ 778:78be32e3e157

Implemented conditional compilation.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Wed, 20 Feb 2008 22:09:29 +0100
parents 9c47f377ca0b
children
line wrap: on
line diff
--- a/trunk/src/dil/SettingsLoader.d	Wed Feb 20 01:24:19 2008 +0100
+++ b/trunk/src/dil/SettingsLoader.d	Wed Feb 20 22:09:29 2008 +0100
@@ -12,6 +12,7 @@
 import dil.semantic.Symbol;
 import dil.semantic.Symbols;
 import dil.Information;
+import dil.Compilation;
 import common;
 
 import tango.io.FilePath;
@@ -77,9 +78,14 @@
     if (mod.hasErrors)
       return;
 
-    auto pass1 = new SemanticPass1(mod);
+    auto context = new CompilationContext;
+    auto pass1 = new SemanticPass1(mod, context);
     pass1.start();
 
+    if (auto array = getValue!(ArrayInitExpression)("version_ids"))
+      foreach (value; array.values)
+        if (auto str = castTo!(StringExpression)(value))
+          GlobalSettings.versionIds ~= str.getString();
     if (auto val = getValue!(StringExpression)("langfile"))
       GlobalSettings.langFile = val.getString();
     if (auto array = getValue!(ArrayInitExpression)("import_paths"))
@@ -109,7 +115,7 @@
     if (mod.hasErrors)
       return;
 
-    pass1 = new SemanticPass1(mod);
+    pass1 = new SemanticPass1(mod, context);
     pass1.start();
 
     if (auto array = getValue!(ArrayInitExpression)("messages"))
@@ -149,7 +155,8 @@
     if (mod.hasErrors)
       return null;
 
-    auto pass1 = new SemanticPass1(mod);
+    auto context = new CompilationContext;
+    auto pass1 = new SemanticPass1(mod, context);
     pass1.start();
 
     string[string] map;