]> git.sur5r.net Git - cc65/commitdiff
pragma: add minimalist message pragma implementation
authorPascal de Bruijn <pmjdebruijn@pcode.nl>
Tue, 18 Jul 2017 16:12:19 +0000 (18:12 +0200)
committerPascal de Bruijn <pmjdebruijn@pcode.nl>
Wed, 19 Jul 2017 15:58:13 +0000 (17:58 +0200)
for example:

#pragma message ("in a bottle")

results in:

hello.c(207): Note: in a bottle

src/cc65/pragma.c

index d50d151a7c063700590d841c6384f975e17afc54..25bc29d43cdfbfaad8cb6425deaf900c5af46e04 100644 (file)
@@ -78,6 +78,7 @@ typedef enum {
     PRAGMA_DATASEG,                                     /* obsolete */
     PRAGMA_INLINE_STDFUNCS,
     PRAGMA_LOCAL_STRINGS,
+    PRAGMA_MESSAGE,
     PRAGMA_OPTIMIZE,
     PRAGMA_REGISTER_VARS,
     PRAGMA_REGVARADDR,
@@ -114,6 +115,7 @@ static const struct Pragma {
     { "dataseg",                PRAGMA_DATASEG            },      /* obsolete */
     { "inline-stdfuncs",        PRAGMA_INLINE_STDFUNCS    },
     { "local-strings",          PRAGMA_LOCAL_STRINGS      },
+    { "message",                PRAGMA_MESSAGE            },
     { "optimize",               PRAGMA_OPTIMIZE           },
     { "register-vars",          PRAGMA_REGISTER_VARS      },
     { "regvaraddr",             PRAGMA_REGVARADDR         },
@@ -750,6 +752,13 @@ static void IntPragma (StrBuf* B, IntStack* Stack, long Low, long High)
 
 
 
+static void MakeMessage (const char* Message)
+{
+    fprintf (stderr, "%s(%u): Note: %s\n", GetInputName (CurTok.LI), GetInputLine (CurTok.LI), Message);
+}
+
+
+
 static void ParsePragma (void)
 /* Parse the contents of the _Pragma statement */
 {
@@ -849,6 +858,10 @@ static void ParsePragma (void)
             FlagPragma (&B, &LocalStrings);
             break;
 
+        case PRAGMA_MESSAGE:
+            StringPragma (&B, MakeMessage);
+            break;
+
         case PRAGMA_OPTIMIZE:
             FlagPragma (&B, &Optimize);
             break;