From 6865e612102c809bfed00acb52ce75395395cc89 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Sat, 5 Aug 2006 13:32:21 +0000 Subject: 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 --- mixlib/mix_scanner.l | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'mixlib/mix_scanner.l') 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})?)* { {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); -- cgit v1.2.3