Exemple #1
0
 void error()
 {
     Console.WriteLine("This word is error!\n");
     MessageBox.Show(token + " here is wrong!");
     errorInf = "This word is error!";
     symbol   = (classify)6;
 }
Exemple #2
0
        int getsym()
        {
            if (IsEnd == false)
            {
                clearToken();
                getChar();
                //cout << "first get char  " << CHAR << endl;
                while (CHAR == '\r' || Char.IsWhiteSpace(CHAR) || CHAR == '\t' || CHAR == '\n' || CHAR == ' ')
                {
                    getChar();
                }
                //字母
                if (Char.IsLetter(CHAR))
                {
                    catToken();
                    getChar();
                    while (Char.IsLetter(CHAR) || Char.IsDigit(CHAR))
                    {
                        catToken(); getChar();
                    }
                    retract();
                    int resultValue = reserver();
                    if (resultValue == -1)
                    {
                        symbol = classify.IDSY; outt = token;
                    }
                    else
                    {
                        symbol = classify.KEYWORDSY; outt = token;
                    }
                }
                //数字
                else if (Char.IsDigit(CHAR))
                {
                    catToken();
                    getChar();
                    while (Char.IsDigit(CHAR))
                    {
                        catToken(); getChar();
                    }
                    //整数
                    if (!isDot())
                    {
                        retract();
                        outt   = transNum();
                        symbol = classify.INTSY;
                    }
                    else
                    {
                        catToken();
                        getChar();
                        while (Char.IsDigit(CHAR))
                        {
                            catToken(); getChar();
                        }
                        if (isDot())
                        {
                            catToken();
                            getChar();
                            while (Char.IsDigit(CHAR))
                            {
                                catToken(); getChar();
                            }
                            symbol = (classify)6;
                            error();
                            //MessageBox.Show(token +" here is wrong!");
                        }
                        else
                        {
                            symbol = classify.FLOATSY;
                        }

                        retract();

                        outt = token;
                    }
                }
                else if (isColon())
                {
                    catToken();
                    getChar();
                    if (isEqu())
                    {
                        catToken(); symbol = classify.DOUBLE; outt = ":=";
                    }
                    else
                    {
                        retract(); symbol = classify.CALSY; outt = ":";
                    }
                }
                else if (isEqu())
                {
                    catToken(); symbol = classify.SINGLESY; outt = "=";
                }
                else if (isPlus())
                {
                    catToken(); symbol = classify.SINGLESY; outt = "+";
                }
                else if (isMinus())
                {
                    catToken(); symbol = classify.SINGLESY; outt = "-";
                }
                else if (isStar())
                {
                    catToken(); symbol = classify.SINGLESY; outt = "*";
                }
                else if (isLpar())
                {
                    catToken(); symbol = classify.CALSY; outt = "(";
                }
                else if (isRpar())
                {
                    catToken(); symbol = classify.CALSY; outt = ")";
                }
                else if (isComma())
                {
                    catToken(); symbol = classify.CALSY; outt = ",";
                }
                else if (isSemi())
                {
                    catToken(); symbol = classify.CALSY; outt = ";";
                }
                else if (isSmall())
                {
                    catToken();
                    getChar();
                    if (isEqu())
                    {
                        catToken(); symbol = classify.DOUBLE; outt = "<=";
                    }
                    else
                    {
                        retract(); symbol = classify.SINGLESY; outt = "<";
                    }
                }
                else if (isBig())
                {
                    catToken();
                    getChar();
                    if (isEqu())
                    {
                        catToken(); symbol = classify.DOUBLE; outt = ">=";
                    }
                    else
                    {
                        retract(); symbol = classify.SINGLESY; outt = ">";
                    }
                }
                else if (isDot())
                {
                    catToken();
                    symbol = classify.CALSY; outt = ".";
                }
                else if (isDivi())
                {
                    getChar();
                    if (isStar())
                    {
                        do
                        {
                            do
                            {
                                getChar();
                            } while (!isStar());
                            do
                            {
                                getChar();
                                if (isDivi())
                                {
                                    symbol = classify.COMMENTSY;
                                    outt   = ""; return(0);
                                }
                            } while (isStar());
                        } while (!isStar());
                        symbol = classify.COMMENTSY;
                        outt   = "";
                    }
                    else
                    {
                        retract();
                        catToken();
                        symbol = classify.SINGLESY; outt = "/";
                    }
                }
                else if (IsEnd == true)
                {
                    return(0);
                }
                else
                {
                    catToken(); error();
                }
                return(0);
            }
            return(-1);
        }