#ifdef __FIXLABELS
ret_code LabelMacro(struct asm_tok tokenarray[])
{
   int q;

    if (Token_Count > 2 &&
	tokenarray[0].token == T_ID &&
       (tokenarray[1].token == T_COLON || tokenarray[1].token == T_DBL_COLON)) {
	if (tokenarray[2].token != T_FINAL) {
	    return 1;
	}
    }
    return 0;
}
#endif

ret_code ParseLine( struct asm_tok tokenarray[] )
/**********************************************/
{
    int 		i;
    int 		j;
    uint		dirflags;
    unsigned    	CurrOpnd;
    ret_code    	temp;
    struct asym 	*sym;
    uint_32     	oldofs;
#ifdef DEBUG_OUT
    char		*instr;
#endif
    struct code_info    CodeInfo;
#if AVXSUPP
    struct expr 	opndx[MAX_OPND+1];
#else
    struct expr 	opndx[MAX_OPND];
#endif
#ifdef __FIXLABELS
    char buffer[MAX_LINE_LEN];
#endif

    i = 0;

    DebugMsg1(("ParseLine enter, Token_Count=%u, ofs=%Xh\n",
	      Token_Count, GetCurrOffset() ));

#ifdef __FIXLABELS
    if (LabelMacro(tokenarray)) {
	strcpy(buffer, tokenarray[2].tokpos);
	strcpy(CurrSource, tokenarray[0].string_ptr);
	strcat(CurrSource, tokenarray[1].string_ptr);
	Token_Count = Tokenize(CurrSource, 0, tokenarray, TOK_DEFAULT);
	if (ERROR == ParseLine(tokenarray))
	    return ERROR;
	strcpy(CurrSource, buffer);
	Token_Count = Tokenize(CurrSource, 0, tokenarray, TOK_DEFAULT);
	i = ExpandLine(CurrSource, tokenarray);
	if (i == EMPTY)
	    return EMPTY;
	else if (i == ERROR)
	    return ERROR;
	i = 0;
    } else
#endif
    /* Does line start with a code label? */
    if ( tokenarray[0].token == T_ID && ( tokenarray[1].token == T_COLON || tokenarray[1].token == T_DBL_COLON ) ) {
