2001-07-25 Dave Brolley <brolley@redhat.com>

* app.c (LEX_IS_PARALLEL_SEPARATOR): New macro.
	(IS_PARALLEL_SEPARATOR): New macro.
	(do_scrub_begin): Set up characters in tc_parallel_separator_chars
	as LEX_IS_PARALLEL_SEPARATOR, if it is defined.
	(do_scrub_chars): Handle LEX_PARALLEL_SEPARATOR chars like
	LEX_LINE_SEPARATOR except that we go to state 1 (as if the label has
	been seen).
This commit is contained in:
Dave Brolley 2001-07-25 15:23:19 +00:00
parent 966beb0fe7
commit 62f65a7b06
2 changed files with 28 additions and 1 deletions

View File

@ -1,3 +1,13 @@
2001-07-25 Dave Brolley <brolley@redhat.com>
* app.c (LEX_IS_PARALLEL_SEPARATOR): New macro.
(IS_PARALLEL_SEPARATOR): New macro.
(do_scrub_begin): Set up characters in tc_parallel_separator_chars
as LEX_IS_PARALLEL_SEPARATOR, if it is defined.
(do_scrub_chars): Handle LEX_PARALLEL_SEPARATOR chars like
LEX_LINE_SEPARATOR except that we go to state 1 (as if the label has
been seen).
2001-07-24 Alan Modra <amodra@bigpond.net.au>
* Makefile.am (DEP_FLAGS): Define, add -DOBJ_MAYBE_ELF.

View File

@ -78,9 +78,11 @@ static const char symbol_chars[] =
#ifdef DOUBLEBAR_PARALLEL
#define LEX_IS_DOUBLEBAR_1ST 13
#endif
#define LEX_IS_PARALLEL_SEPARATOR 14
#define IS_SYMBOL_COMPONENT(c) (lex[c] == LEX_IS_SYMBOL_COMPONENT)
#define IS_WHITESPACE(c) (lex[c] == LEX_IS_WHITESPACE)
#define IS_LINE_SEPARATOR(c) (lex[c] == LEX_IS_LINE_SEPARATOR)
#define IS_PARALLEL_SEPARATOR(c) (lex[c] == LEX_IS_PARALLEL_SEPARATOR)
#define IS_COMMENT(c) (lex[c] == LEX_IS_COMMENT_START)
#define IS_LINE_COMMENT(c) (lex[c] == LEX_IS_LINE_COMMENT_START)
#define IS_NEWLINE(c) (lex[c] == LEX_IS_NEWLINE)
@ -164,6 +166,15 @@ do_scrub_begin (m68k_mri)
lex[(unsigned char) *p] = LEX_IS_LINE_SEPARATOR;
} /* declare line separators */
#ifdef tc_parallel_separator_chars
/* This macro permits the processor to specify all characters which
separate parallel insns on the same line. */
for (p = tc_parallel_separator_chars; *p; p++)
{
lex[(unsigned char) *p] = LEX_IS_PARALLEL_SEPARATOR;
} /* declare parallel separators */
#endif
/* Only allow slash-star comments if slash is not in use.
FIXME: This isn't right. We should always permit them. */
if (lex['/'] == 0)
@ -796,7 +807,8 @@ do_scrub_chars (get, tostart, tolen)
#endif
if (IS_COMMENT (ch)
|| ch == '/'
|| IS_LINE_SEPARATOR (ch))
|| IS_LINE_SEPARATOR (ch)
|| IS_PARALLEL_SEPARATOR (ch))
{
if (scrub_m68k_mri)
{
@ -1039,6 +1051,11 @@ do_scrub_chars (get, tostart, tolen)
PUT (ch);
break;
case LEX_IS_PARALLEL_SEPARATOR:
state = 1;
PUT (ch);
break;
#ifdef TC_V850
case LEX_IS_DOUBLEDASH_1ST:
ch2 = GET ();