예제 #1
0
        private static bool CheckZeroOneWholeLine(LineObject lineObject, bool printFlag, CheckSt st, LexRecord lexObj,
                                                  CheckObject checkObject, UpdateLex updateLex)

        {
            bool flag = checkObject.IsNextStartStr(lineObject.GetLine());

            if (flag == true)

            {
                st.UpdateCurState(checkObject.GetNextState());
                lineObject.SetGoToNext(false);
                return(flag);
            }

            if (st.GetCurState() != st.GetLastState())

            {
                st.UpdateLastState();
                flag = CheckOneWholeLine(lineObject, printFlag, st, lexObj, checkObject, updateLex);
            }
            else

            {
                string line = lineObject.GetLine();
                st.UpdateLastState();
                ErrMsg.PrintErrMsg(printFlag, 82, lineObject, line, 0, line.Length, checkObject.IsTab());
            }

            return(flag);
        }
예제 #2
0
        private static bool CheckOneMany(LineObject lineObject, bool printFlag, CheckSt st, LexRecord lexObj,
                                         CheckObject checkObject, UpdateLex updateLex, bool checkLength)

        {
            bool flag = false;

            if (st.GetCurState() != st.GetLastState())

            {
                st.UpdateLastState();
                flag = CheckOne(lineObject, printFlag, st, lexObj, checkObject, updateLex, checkLength, false);
            }
            else

            {
                st.UpdateLastState();
                flag = CheckZeroMany(lineObject, printFlag, st, lexObj, checkObject, updateLex, checkLength);
            }

            return(flag);
        }