From c7c27ef02a3d5c7d17e5728910961a4a1eeacfe3 Mon Sep 17 00:00:00 2001 From: ggn Date: Tue, 17 Nov 2015 18:59:56 +0200 Subject: [PATCH] .error and .warn directives implemented. --- direct.c | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/direct.c b/direct.c index e96aacb..1750272 100644 --- a/direct.c +++ b/direct.c @@ -77,8 +77,8 @@ int (*dirtab[])() = { d_title, // 44 title d_subttl, // 45 subttl eject, // 46 eject - d_unimpl, // 47 error - d_unimpl, // 48 warn + d_error, // 47 error + d_warn, // 48 warn d_noclear, // 49 .noclear d_equrundef, // 50 .equrundef/.regundef d_ccundef, // 51 .ccundef @@ -91,6 +91,48 @@ int (*dirtab[])() = { }; +// +// .error - Abort compilation, printing an error message +// +int d_error(char *str) +{ + if (*tok == EOL) + return error("error directive encountered - aborting assembling"); + else + { + switch(*tok) + { + case STRING: + return error(string[tok[1]]); + break; + default: + return error("error directive encountered - aborting assembling"); + } + } +} + + +// +// .warn - Just display a warning on screen +// +int d_warn(char *str) +{ + if (*tok == EOL) + return warn("WARNING WARNING WARNING"); + else + { + switch(*tok) + { + case STRING: + return warn(string[tok[1]]); + break; + default: + return warn("WARNING WARNING WARNING"); + } + } +} + + // // .org - Set origin // -- 2.37.2