private string get_word()
{
string rtn = "";
int i = 0;
while (cur_token != ' ' && cur_token != '\t' && cur_token != 0 && cur_token != '\n' && cur_token != '\r')
{
if (is_validate_token(cur_token) == false)
{
if (cur_token == ':' || cur_token == '[' || cur_token == '(' || cur_token == '\'' || cur_token == ';' || cur_token == '/')
break;
error(string.Format("标记中出现非法字符‘{0}'", cur_token));
}
else
{
rtn += cur_token;
i++;
if (i >= MAX_WORD_LEN)
{
error("标记长度不能超过50!");
break;
}
get_src_token();
}
}
if (string.IsNullOrEmpty(rtn) || Regex.IsMatch(rtn, @"^\s*$"))
error("指令不完整!需要标记。");
else if (char.IsDigit(rtn[0]))
error("标记不能以字母开头");
return rtn;
//printf("got word %s\n\n\n",word);
}