summaryrefslogtreecommitdiffhomepage
path: root/mixlib/mix_scanner.l
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2006-08-05 13:32:21 +0000
committerJose Antonio Ortega Ruiz <jao@gnu.org>2006-08-05 13:32:21 +0000
commit6865e612102c809bfed00acb52ce75395395cc89 (patch)
treec68d68703f432db887bd111088bbc51a4506f6cb /mixlib/mix_scanner.l
parent52cd64b7673affa9737ee6f486ea974c59f4d388 (diff)
downloadmdk-6865e612102c809bfed00acb52ce75395395cc89.tar.gz
mdk-6865e612102c809bfed00acb52ce75395395cc89.tar.bz2
Invalid F-spec reported as warnings, to allow hacks as CMPX xxxx(6)
git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-13
Diffstat (limited to 'mixlib/mix_scanner.l')
-rw-r--r--mixlib/mix_scanner.l27
1 files changed, 18 insertions, 9 deletions
diff --git a/mixlib/mix_scanner.l b/mixlib/mix_scanner.l
index 2b3099b..1ad8eaa 100644
--- a/mixlib/mix_scanner.l
+++ b/mixlib/mix_scanner.l
@@ -434,16 +434,25 @@ wexpr {expr}({fpart})?(,{expr}({fpart})?)*
<FSPEC>{
{number}")"(({ws}+.*\n)|\n) {
glong val = atol (yytext);
- if ( val < 0 || val > MIX_BYTE_MAX )
- RETURN_ERROR (MIX_PERR_INV_FSPEC, NULL);
- if ( ins.opcode != mix_opMOVE
- && ins.opcode != mix_opNOP
- && ( ins.opcode < mix_opJBUS || ins.opcode > mix_opJXx )
- && !mix_fspec_is_valid (mix_byte_new (val)) )
+
+ if (val < 0 || val > MIX_BYTE_MAX)
RETURN_ERROR (MIX_PERR_INV_FSPEC, NULL);
- if ( nof )
- mix_parser_log_error (parser, MIX_PERR_INV_FSPEC,
- lineno, _("ignored"), TRUE);
+
+ if (ins.opcode != mix_opMOVE
+ && ins.opcode != mix_opNOP
+ && ( ins.opcode < mix_opJBUS || ins.opcode > mix_opJXx )
+ && !mix_fspec_is_valid (mix_byte_new (val)) )
+ {
+ gchar *spec = g_strdup_printf ("%d", (int)val);
+ mix_parser_log_error (parser, MIX_PERR_INV_FSPEC, lineno, spec, TRUE);
+ g_free (spec);
+ }
+
+ if (nof)
+ {
+ mix_parser_log_error (parser, MIX_PERR_INV_FSPEC,
+ lineno, _("ignored"), TRUE);
+ }
else
{
ins.fspec = mix_byte_new (val);