Abraham.DLXChecker.get_word C# (CSharp) Method

get_word() private method

得到一个字符串,可能是指令操作码(Add,Lw等),也可能是label, 但不能以字母开头
private get_word ( ) : string
return string
        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);
        }