add #else support to #ifdef
authorcrawshaw <crawshaw@ibex.org>
Tue, 16 Nov 2004 16:08:19 +0000 (16:08 +0000)
committercrawshaw <crawshaw@ibex.org>
Tue, 16 Nov 2004 16:08:19 +0000 (16:08 +0000)
darcs-hash:20041116160819-2eb37-2cee6252dbbce500a710c992fb44ebc5091b14fe.gz

src/java/ibex/tool/Preprocessor.java

index 1639829..c8307da 100644 (file)
@@ -19,6 +19,8 @@ import java.io.*;
  *
  *   //#ifdef FOO                -- includes contents if FOO passed as define to preprocessor
  *       [code]
+ *   //#else
+ *       [code run if !FOO]
  *   //#endif
  *
  *   Replacements are done on a token basis.  Tokens are defined as a
@@ -215,7 +217,8 @@ PROCESS:
                 out.println(trimmed);
                 boolean useCode = defs.contains(expr);
                 for (trimmed = in.readLine().trim(); !trimmed.startsWith("//#endif"); trimmed = in.readLine().trim()) {
-                    if (!useCode) out.print("// ");
+                    if (trimmed.startsWith("//#else")) useCode = !useCode;
+                    else if (!useCode) out.print("// ");
                     out.print(processLine(trimmed, false));
                 }
                 out.println("//#endif "+expr);