TOK_NUMERIC;
/* Повертаємо число у вигляді рядка */
int len ​​= min (strlen (buf), MAX_TOKEN_LEN);
strncpy (_tokRec-> str, buf, len);
* (_tokRec-> str + len) = ' 0'; (hasDecimal | | hasExpSign == (int) '-')
{
_tokRec-> val.d = d;
}
{
/* Насправді ціле */
_tokRec-> val.d = (long) d;
}
}/* Кінець перевірки на число */
{
/* Невідомий символ. Припиняємо подальше введення */
_tokRec-> type = TOK_EOF;
} _end:
/* Заносимо номер рядка і повертаємо token (* _tokRec) і його тип */
_tokRec-> line_num = lexer_line_num (cb); _tokRec-> type;
} lexer_line_num (CodeBuffer * cb)
{cb-> line_num;
} lexer_put_back (CodeBuffer * cb, char _ch)
{_t len ​​= strlen (cb-> char_backbuf); (len
{
* (cb-> char_backbuf + len) = _ch;
* (cb-> char_backbuf + len +1) = ' 0';
}
{_error (cb, "Буфер Parser'а переповнений.");
}
} lexer_remove_line (CodeBuffer * cb)
{ch = lexer_get_char (cb); (ch! = TOK_EOF && ch! = ' n')
{= lexer_get_char (cb);
} _put_back (cb, ch);
} lexer_get_charEx (CodeBuffer * cb)
{ch; ch2; move; = lexer_get_char (cb); (ch! = TOK_EOF)
{= 0;
/* Видаляємо прогалини */(isspace (ch))
{= lexer_get_char (cb);
}
/* Видаляємо рядки починаються з '#' */
if (ch == '#')
{_remove_line (cb); = lexer_get_char (cb);
}
/* Кінець рядка (оператора)? */(Ch == ' n' | | ch == ';')
{ch;
}
/* Видаляємо прогалини */(isspace (ch))
{= lexer_get_char (cb);
}
/* Видаляємо коментарі які починаються з '/ *' і закінчуються */
if (ch == '/')
{= lexer_get_char (cb);
if (ch2 == '/')
{
/* Читання до кінця рядка */
ch = lexer_get_char (cb); (ch! = TOK_EOF &...