コード例 #1
0
        public static bool Check(LineObject lineObject, bool printFlag, CheckSt catSt, LexRecord lexObj, bool debugFlag)

        {
            bool flag  = true;
            int  curSt = catSt.GetCurState();

            if (curSt == 40)

            {
                curSt = 161;
                catSt.SetCurState(curSt);
            }

            switch (curSt)

            {
            case 161:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkVariant_,
                                       new UpdateModalVariant(), 4, true);


                PrintStep(161, debugFlag, lineObject.GetLine());

                break;
            }

            return(flag);
        }
コード例 #2
0
        private static bool CheckNone(LineObject lineObject, CheckSt catSt, int nextState)

        {
            lineObject.SetGoToNext(false);
            catSt.UpdateCurState(nextState);
            return(true);
        }
コード例 #3
0
        public static ApiOutput ToXmlFromText(string text)

        {
            CheckSt st    = new CheckSt();
            CheckSt catSt = new CheckSt(40);

            LineObject    lineObject = new LineObject();
            StringBuilder xmlOut     = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");

            xmlOut.Append("<lexRecords>\n");
            int recordNum = 0;

            string unixText = text.Replace("\r\n", "\n");

            string[] buf = unixText.Split('\n').ToList().Where(x => x != "").ToArray();

            foreach (string line in buf)
            {
                if (lineObject.IsGoToNext() == true)

                {
                    lineObject.SetLine(line);
                    lineObject.IncreaseLineNum();
                }

                recordNum = CheckLine(st, catSt, lineObject, xmlOut, recordNum);
            }

            xmlOut.Append("</lexRecords>\n");
            ApiOutput apiOutput = new ApiOutput(xmlOut.ToString(), recordNum);

            return(apiOutput);
        }
コード例 #4
0
        private static bool CheckZeroMany(LineObject lineObject, bool printFlag, CheckSt st, LexRecord lexObj,
                                          CheckObject checkObject, UpdateLex updateLex, bool checkLength)

        {
            lineObject.SetGoToNext(true);
            st.UpdateLastState();

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

            if (flag == true)

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

            flag = LineCheck.CheckStartStr(lineObject, printFlag, checkObject);
            if (flag == true)

            {
                TokenObject tokenObject = new TokenObject();

                flag = LineCheck.CheckSlotFiller(lineObject, printFlag, checkObject, tokenObject, checkLength);


                if (flag == true)

                {
                    updateLex.Update(lexObj, tokenObject.GetToken());
                }
            }

            return(flag);
        }
コード例 #5
0
        private static bool CheckZeroOne(LineObject lineObject, bool printFlag, CheckSt st, LexRecord lexObj,
                                         CheckObject checkObject, UpdateLex updateLex, bool checkLength)

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

            if (flag == true)

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

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

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

            {
                ErrMsg.PrintErrMsg(printFlag, 82, lineObject, line, 0, line.Length, checkObject.IsTab());

                st.UpdateLastState();
                flag = false;
            }

            return(flag);
        }
コード例 #6
0
        public static bool Check(LineObject lineObject, bool printFlag, CheckSt catSt, LexRecord lexObj, bool debugFlag)

        {
            bool flag  = true;
            int  curSt = catSt.GetCurState();

            if (curSt == 40)

            {
                curSt = 191;
                catSt.SetCurState(curSt);
            }

            switch (curSt)

            {
            case 191:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkVariants_,
                                       new UpdatePronVariants(), 4, true);


                PrintStep(191, debugFlag, lineObject.GetLine());

                break;

            case 192:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkGender_, new UpdatePronGender(),
                                       2, true);


                PrintStep(192, debugFlag, lineObject.GetLine());

                break;

            case 193:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkInterrogative_,
                                       new UpdatePronInterrogative(), 6, false);


                PrintStep(193, debugFlag, lineObject.GetLine());

                break;

            case 194:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkType_, new UpdatePronType(), 3,
                                       false);


                PrintStep(194, debugFlag, lineObject.GetLine());

                break;
            }

            return(flag);
        }
コード例 #7
0
        public static List <Agreement> GetAgreementsFromTextFile(string inFile)

        {
            CheckSt st    = new CheckSt();
            CheckSt catSt = new CheckSt(40);

            LineObject       lineObject = new LineObject();
            List <Agreement> agreements = new List <Agreement>();

            try

            {
                System.IO.StreamReader inReader = new System.IO.StreamReader(
                    new System.IO.FileStream(inFile, System.IO.FileMode.Open, System.IO.FileAccess.Read),
                    Encoding.UTF8);

                while (lineObject != null)

                {
                    if (lineObject.IsGoToNext() == true)

                    {
                        lineObject.SetLine(inReader.ReadLine());
                        lineObject.IncreaseLineNum();
                    }

                    if (lineObject.GetLine() == null)
                    {
                        break;
                    }


                    bool flag = CheckGrammer.Check(lineObject, true, st, catSt, false);

                    if ((st.GetCurState() == 10) && (flag == true))

                    {
                        InflVarsAndAgreements agrs = new InflVarsAndAgreements(CheckGrammer.GetLexRecord());
                        agreements.AddRange(agrs.GetAgreementValues());
                    }
                }

                inReader.Close();
            }
            catch (Exception e)

            {
                Console.WriteLine(e.ToString());
                Console.Write(e.StackTrace);
            }

            return(agreements);
        }
コード例 #8
0
        public static ApiOutput ToXmlFromTextFile(string inFile)

        {
            CheckSt st    = new CheckSt();
            CheckSt catSt = new CheckSt(40);

            LineObject    lineObject = new LineObject();
            StringBuilder xmlOut     = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");

            xmlOut.Append("<lexRecords>\n");
            int recordNum = 0;

            try

            {
                System.IO.StreamReader inReader = new System.IO.StreamReader(
                    new System.IO.FileStream(inFile, System.IO.FileMode.Open, System.IO.FileAccess.Read),
                    Encoding.UTF8);

                while (lineObject != null)

                {
                    if (lineObject.IsGoToNext() == true)

                    {
                        lineObject.SetLine(inReader.ReadLine());
                        lineObject.IncreaseLineNum();
                    }

                    if (lineObject.GetLine() == null)
                    {
                        break;
                    }

                    recordNum = CheckLine(st, catSt, lineObject, xmlOut, recordNum);
                }

                inReader.Close();
            }
            catch (Exception e)

            {
                Console.WriteLine(e.ToString());
                Console.Write(e.StackTrace);
            }

            xmlOut.Append("</lexRecords>\n");
            ApiOutput apiOutput = new ApiOutput(xmlOut.ToString(), recordNum);

            return(apiOutput);
        }
コード例 #9
0
        private static void CheckLine(CheckSt st, CheckSt catSt, LineObject lineObject, List <LexRecord> lexRecords)

        {
            bool flag      = false;
            bool printFlag = true;

            flag = CheckGrammer.Check(lineObject, printFlag, st, catSt, false);

            if ((st.GetCurState() == 10) && (flag == true))

            {
                lexRecords.Add(CheckGrammer.GetLexRecord());
            }
        }
コード例 #10
0
        public static bool Check(LineObject lineObject, bool printFlag, CheckSt catSt, LexRecord lexObj, bool debugFlag)

        {
            bool flag  = true;
            int  curSt = catSt.GetCurState();

            if (curSt == 40)

            {
                curSt = 151;
                catSt.SetCurState(curSt);
            }

            switch (curSt)

            {
            case 151:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkVariants_,
                                       new UpdateDetVariants(), 1, true);


                PrintStep(151, debugFlag, lineObject.GetLine());

                break;

            case 152:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkInterrogative_,
                                       new UpdateDetInterrogative(), 6, false);


                PrintStep(152, debugFlag, lineObject.GetLine());

                break;

            case 153:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkDemonstrative_,
                                       new UpdateDetDemonstrative(), 6, false);


                PrintStep(152, debugFlag, lineObject.GetLine());

                break;
            }

            return(flag);
        }
コード例 #11
0
        public static List <LexRecord> ToJavaObjsFromTextFile(string inFile)

        {
            CheckSt st    = new CheckSt();
            CheckSt catSt = new CheckSt(40);

            LineObject       lineObject = new LineObject();
            int              recordNum  = 0;
            List <LexRecord> lexRecords = new List <LexRecord>();

            try

            {
                System.IO.StreamReader inReader = new System.IO.StreamReader(
                    new System.IO.FileStream(inFile, System.IO.FileMode.Open, System.IO.FileAccess.Read),
                    Encoding.UTF8);

                while (lineObject != null)

                {
                    if (lineObject.IsGoToNext() == true)

                    {
                        lineObject.SetLine(inReader.ReadLine());
                        lineObject.IncreaseLineNum();
                    }

                    if (lineObject.GetLine() == null)
                    {
                        break;
                    }

                    recordNum = CheckLine(st, catSt, lineObject, lexRecords, recordNum);
                }

                inReader.Close();
            }
            catch (Exception e)

            {
                Console.WriteLine(e.ToString());
                Console.Write(e.StackTrace);
            }

            return(lexRecords);
        }
コード例 #12
0
        private static LexRecord CheckLine(CheckSt st, CheckSt catSt, LineObject lineObject)

        {
            bool flag      = false;
            bool printFlag = true;

            flag = CheckGrammer.Check(lineObject, printFlag, st, catSt, false);
            LexRecord lexRecord = new LexRecord();

            if ((st.GetCurState() == 10) && (flag == true))

            {
                lexRecord = CheckGrammer.GetLexRecord();
            }

            return(lexRecord);
        }
コード例 #13
0
        private static int CheckLine(CheckSt st, CheckSt catSt, LineObject lineObject, StringBuilder xmlOut,
                                     int recordNum)

        {
            bool flag      = false;
            bool printFlag = true;

            flag = CheckGrammer.Check(lineObject, printFlag, st, catSt, false);

            if ((st.GetCurState() == 10) && (flag == true))

            {
                xmlOut.Append(CheckGrammer.GetLexRecord().GetXml());
                recordNum++;
            }

            return(recordNum);
        }
コード例 #14
0
        public static bool Check(LineObject lineObject, bool printFlag, CheckSt st, LexRecord lexObj,
                                 CheckObject checkObject, UpdateLex updateLex, int frequency, bool checkLength)

        {
            bool flag = false;

            switch (frequency)

            {
            case 1:
                flag = CheckOne(lineObject, printFlag, st, lexObj, checkObject, updateLex, checkLength, true);

                break;

            case 2:
                flag = CheckZeroOne(lineObject, printFlag, st, lexObj, checkObject, updateLex, checkLength);

                break;

            case 3:
                flag = CheckZeroMany(lineObject, printFlag, st, lexObj, checkObject, updateLex, checkLength);

                break;

            case 4:
                flag = CheckOneMany(lineObject, printFlag, st, lexObj, checkObject, updateLex, checkLength);

                break;

            case 5:
                flag = CheckOneWholeLine(lineObject, printFlag, st, lexObj, checkObject, updateLex);

                break;

            case 6:
                flag = CheckZeroOneWholeLine(lineObject, printFlag, st, lexObj, checkObject, updateLex);
                break;
            }


            return(flag);
        }
コード例 #15
0
        private static bool CheckLine2(CheckSt st, CheckSt catSt, LineObject lineObject)

        {
            bool flag      = false;
            bool printFlag = true;

            flag = CheckGrammer.Check(lineObject, printFlag, st, catSt, false);
            if (!flag)

            {
                return(flag);
            }

            if ((st.GetCurState() == 10) && (flag == true))

            {
                lexRecNum_ += 1;
            }

            return(flag);
        }
コード例 #16
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);
        }
コード例 #17
0
        public static bool CheckRecordText(string text)

        {
            ErrMsg.ResetErrMsg();
            CheckSt st    = new CheckSt();
            CheckSt catSt = new CheckSt(40);

            LineObject lineObject = new LineObject();

            string           unixText   = text.Replace("\r\n", "\n");
            List <LexRecord> lexRecords = new List <LexRecord>();

            if (!string.IsNullOrEmpty(unixText))
            {
                string[] buf = unixText.Split('\n').ToList().Where(x => x != "").ToArray();

                int i = -1;
                while (lineObject != null)
                {
                    if (lineObject.IsGoToNext() == true)
                    {
                        i += 1;
                        if (i >= buf.Length)
                        {
                            break;
                        }
                        string line = buf[i];
                        lineObject.SetLine(line);
                        lineObject.IncreaseLineNum();
                    }
                    else if (!CheckLine2(st, catSt, lineObject))

                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
コード例 #18
0
        //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public static int CheckRecordsFromTextFile(String inFile, String prepositionFile) throws Exception
        public static int CheckRecordsFromTextFile(string inFile, string prepositionFile)


        {
            GlobalVars.SetPrepositionFile(prepositionFile);

            lexRecNum_ = 0;
            CheckSt st    = new CheckSt();
            CheckSt catSt = new CheckSt(40);

            LineObject lineObject = new LineObject();

            System.IO.StreamReader inReader = new System.IO.StreamReader(
                new System.IO.FileStream(inFile, System.IO.FileMode.Open, System.IO.FileAccess.Read), Encoding.UTF8);

            while (lineObject != null)

            {
                if (lineObject.IsGoToNext() == true)

                {
                    string line = inReader.ReadLine();
                    if (!ReferenceEquals(line, null))

                    {
                        lineObject.SetLine(line);
                        lineObject.IncreaseLineNum();
                    }
                }
                else if (!CheckLine2(st, catSt, lineObject))

                {
                    return(-1);
                }
            }

            inReader.Close();
            return(lexRecNum_);
        }
コード例 #19
0
        public static List <LexRecord> ToJavaObjsFromText(string text)

        {
            CheckSt st    = new CheckSt();
            CheckSt catSt = new CheckSt(40);

            LineObject lineObject = new LineObject();

            string           unixText   = text.Replace("\r\n", "\n").Trim();
            List <LexRecord> lexRecords = new List <LexRecord>();

            if (!string.IsNullOrEmpty(unixText))
            {
                string[] buf = unixText.Split('\n').ToList().Where(x => x != "").ToArray();

                int i = -1;
                while (lineObject != null)
                {
                    if (lineObject.IsGoToNext() == true)
                    {
                        i += 1;
                        if (i >= buf.Length)
                        {
                            break;
                        }
                        string line = buf[i];
                        lineObject.SetLine(line);
                        lineObject.IncreaseLineNum();
                    }

                    CheckLine(st, catSt, lineObject, lexRecords);
                }
            }

            return(lexRecords);
        }
コード例 #20
0
        private static bool CheckOneWholeLine(LineObject lineObject, bool printFlag, CheckSt st, LexRecord lexObj,
                                              CheckObject checkObject, UpdateLex updateLex)

        {
            lineObject.SetGoToNext(true);

            bool flag = LineCheck.CheckWholeLine(lineObject, printFlag, checkObject);


            if (flag == true)

            {
                st.UpdateLastState();
                st.UpdateCurState(checkObject.GetNextState());

                if (updateLex != null)

                {
                    updateLex.Update(lexObj, lineObject.GetLine());
                }
            }

            return(flag);
        }
コード例 #21
0
ファイル: CheckVerb.cs プロジェクト: russellcaughey/simplenlg
        public static bool Check(LineObject lineObject, bool printFlag, CheckSt catSt, LexRecord lexObj, bool debugFlag)

        {
            bool flag  = true;
            int  curSt = catSt.GetCurState();

            if (curSt == 40)

            {
                curSt = 201;
                catSt.SetCurState(curSt);
            }

            switch (curSt)

            {
            case 201:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkVariants_,
                                       new UpdateVerbVariants(), 4, true);


                PrintStep(201, debugFlag, lineObject.GetLine());

                break;

            case 202:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkIntran_, new UpdateVerbIntran(),
                                       6, false);


                PrintStep(202, debugFlag, lineObject.GetLine());

                break;

            case 203:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkIntran2_, new UpdateVerbIntran(),
                                       3, false);


                PrintStep(203, debugFlag, lineObject.GetLine());

                break;

            case 204:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkTran_, new UpdateVerbTran(), 3,
                                       true);


                PrintStep(204, debugFlag, lineObject.GetLine());

                break;

            case 205:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkDitran_, new UpdateVerbDitran(),
                                       3, true);


                PrintStep(205, debugFlag, lineObject.GetLine());

                break;

            case 206:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkLink_, new UpdateVerbLink(), 3,
                                       true);


                PrintStep(206, debugFlag, lineObject.GetLine());

                break;

            case 207:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkCplxtran_,
                                       new UpdateVerbCplxtran(), 3, true);


                PrintStep(207, debugFlag, lineObject.GetLine());

                break;

            case 208:
                if (!CheckVerbComplNum(lexObj))

                {
                    string line = lineObject.GetLine();
                    ErrMsg.PrintErrMsg(printFlag, 79, lineObject, line, 0, line.Length, true);

                    flag = false;
                }
                else
                {
                    if (flag == true)

                    {
                        flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkNominalization_,
                                               new UpdateVerbNominalization(), 3, true);
                    }

                    PrintStep(208, debugFlag, lineObject.GetLine());
                }

                break;
            }

            return(flag);
        }
コード例 #22
0
        public static bool Check(LineObject lineObject, bool printFlag, CheckSt catSt, LexRecord lexObj, bool debugFlag)

        {
            bool flag  = true;
            int  curSt = catSt.GetCurState();

            if (curSt == 40)

            {
                curSt = 111;
                catSt.SetCurState(curSt);
            }

            switch (curSt)

            {
            case 111:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkVariants_,
                                       new UpdateAdvVariants(), 4, true);


                PrintStep(111, debugFlag, lineObject.GetLine());

                break;

            case 112:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkInterrogative_,
                                       new UpdateAdvInterrogative(), 6, false);


                PrintStep(192, debugFlag, lineObject.GetLine());

                break;

            case 113:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkModification_,
                                       new UpdateAdvModification(), 4, true);


                PrintStep(113, debugFlag, lineObject.GetLine());

                break;

            case 114:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkNegative_,
                                       new UpdateAdvNegative(), 6, false);


                if (!flag)

                {
                    catSt.SetCurState(114);
                    catSt.SetLastState(113);
                    flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkBroadNegative_,
                                           new UpdateAdvNegative(), 6, false);
                }

                PrintStep(114, debugFlag, lineObject.GetLine());

                break;
            }

            return(flag);
        }
コード例 #23
0
        public static bool Check(LineObject lineObject, bool printFlag, CheckSt catSt, LexRecord lexObj, bool debugFlag)

        {
            bool flag  = true;
            int  curSt = catSt.GetCurState();

            if (curSt == 40)

            {
                curSt = 171;
                catSt.SetCurState(curSt);
            }

            switch (curSt)

            {
            case 171:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkVariants_,
                                       new UpdateNounVariants(), 4, true);


                PrintStep(171, debugFlag, lineObject.GetLine());

                break;

            case 172:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkCompl_, new UpdateNounCompl(), 3,
                                       true);


                PrintStep(172, debugFlag, lineObject.GetLine());

                break;

            case 173:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkNominalization_,
                                       new UpdateNounNominalization(), 3, true);


                PrintStep(173, debugFlag, lineObject.GetLine());

                break;

            case 174:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkProper_, new UpdateNounProper(),
                                       6, false);


                PrintStep(174, debugFlag, lineObject.GetLine());

                break;

            case 175:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkTradeName_,
                                       new UpdateNounTradeName(), 3, true);


                PrintStep(175, debugFlag, lineObject.GetLine());

                break;

            case 176:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkTradeMark_,
                                       new UpdateNounTradeMark(), 6, false);


                PrintStep(176, debugFlag, lineObject.GetLine());

                break;
            }

            return(flag);
        }
コード例 #24
0
        public static bool Check(LineObject lineObject, bool printFlag, CheckSt st, CheckSt catSt, LexRecord lexObj,
                                 int nextState, bool debugFlag)

        {
            bool   flag     = false;
            string category = lexObj.GetCategory();

            if (category.Equals("verb") == true)

            {
                flag = CheckVerb.Check(lineObject, printFlag, catSt, lexObj, debugFlag);
            }
            else if (category.Equals("aux") == true)

            {
                flag = CheckAux.Check(lineObject, printFlag, catSt, lexObj, debugFlag);
            }
            else if (category.Equals("modal") == true)

            {
                flag = CheckModal.Check(lineObject, printFlag, catSt, lexObj, debugFlag);
            }
            else if (category.Equals("noun") == true)

            {
                flag = CheckNoun.Check(lineObject, printFlag, catSt, lexObj, debugFlag);
            }
            else if (category.Equals("pron") == true)

            {
                flag = CheckPron.Check(lineObject, printFlag, catSt, lexObj, debugFlag);
            }
            else if (category.Equals("adj") == true)

            {
                flag = CheckAdj.Check(lineObject, printFlag, catSt, lexObj, debugFlag);
            }
            else if (category.Equals("adv") == true)

            {
                flag = CheckAdv.Check(lineObject, printFlag, catSt, lexObj, debugFlag);
            }
            else if (category.Equals("prep") == true)

            {
                flag = CheckNone(lineObject, catSt, nextState);
            }
            else if (category.Equals("conj") == true)

            {
                flag = CheckNone(lineObject, catSt, nextState);
            }
            else if (category.Equals("compl") == true)

            {
                flag = CheckNone(lineObject, catSt, nextState);
            }
            else if (category.Equals("det") == true)

            {
                flag = CheckDet.Check(lineObject, printFlag, catSt, lexObj, debugFlag);
            }

            if (catSt.GetCurState() == nextState)

            {
                st.SetCurState(nextState);
                catSt.SetCurState(40);
            }

            return(flag);
        }
コード例 #25
0
        public static bool Check(LineObject lineObject, bool printFlag, CheckSt catSt, LexRecord lexObj, bool debugFlag)

        {
            bool flag  = true;
            int  curSt = catSt.GetCurState();

            if (curSt == 40)

            {
                curSt = 101;
                catSt.SetCurState(curSt);
            }

            switch (curSt)

            {
            case 101:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkVariants_,
                                       new UpdateAdjVariants(), 4, true);


                PrintStep(101, debugFlag, lineObject.GetLine());

                break;

            case 102:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkPosition_,
                                       new UpdateAdjPosition(), 4, true);


                PrintStep(102, debugFlag, lineObject.GetLine());

                break;

            case 103:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkCompl_, new UpdateAdjCompl(), 3,
                                       true);


                PrintStep(103, debugFlag, lineObject.GetLine());

                break;

            case 104:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkStative_, new UpdateAdjStative(),
                                       6, false);


                PrintStep(104, debugFlag, lineObject.GetLine());

                break;

            case 105:
                flag = CheckCode.Check(lineObject, printFlag, catSt, lexObj, checkNominalization_,
                                       new UpdateAdjNominalization(), 3, true);


                PrintStep(105, debugFlag, lineObject.GetLine());

                break;
            }

            return(flag);
        }
コード例 #26
0
        public static bool Check(LineObject lineObject, bool printFlag, CheckSt st, CheckSt catSt, bool debugFlag)

        {
            bool flag = true;

            switch (st.GetCurState())

            {
            case 10:
                lexRecord_ = new LexRecord();
                flag       = CheckCode.Check(lineObject, printFlag, st, lexRecord_, checkBase_, new UpdateBase(), 1,
                                             true);

                PrintStep(10, debugFlag, lineObject.GetLine());
                break;

            case 20:
                flag = CheckCode.Check(lineObject, printFlag, st, lexRecord_, checkSpellingVar_,
                                       new UpdateSpellingVar(), 3, true);


                PrintStep(20, debugFlag, lineObject.GetLine());

                break;

            case 21:
                flag = CheckCode.Check(lineObject, printFlag, st, lexRecord_, checkEntry_, new UpdateEntry(), 1,
                                       true);

                PrintStep(21, debugFlag, lineObject.GetLine());
                break;

            case 30:
                flag = CheckCode.Check(lineObject, printFlag, st, lexRecord_, checkCat_, new UpdateCat(), 1, true);

                PrintStep(30, debugFlag, lineObject.GetLine());
                break;

            case 40:
                flag = CheckCatEntry.Check(lineObject, printFlag, st, catSt, lexRecord_, 91, debugFlag);

                PrintStep(40, debugFlag, lineObject.GetLine());

                break;

            case 91:
                flag = CheckCode.Check(lineObject, printFlag, st, lexRecord_, checkAcronym_, new UpdateAcronym(), 3,
                                       true);


                PrintStep(91, debugFlag, lineObject.GetLine());

                break;

            case 92:
                flag = CheckCode.Check(lineObject, printFlag, st, lexRecord_, checkAbbreviation_,
                                       new UpdateAbbreviation(), 3, true);


                PrintStep(92, debugFlag, lineObject.GetLine());

                break;

            case 95:
                flag = CheckCode.Check(lineObject, printFlag, st, lexRecord_, checkAnnotation_,
                                       new UpdateAnnotation(), 3, true);


                PrintStep(95, debugFlag, lineObject.GetLine());

                break;

            case 96:
                flag = CheckCode.Check(lineObject, printFlag, st, lexRecord_, checkSignature_,
                                       new UpdateSignature(), 2, true);


                PrintStep(96, debugFlag, lineObject.GetLine());

                break;

            case 99:
                flag = CheckCode.Check(lineObject, printFlag, st, lexRecord_, checkEnd_, new UpdateEnd(), 5, false);


                PrintStep(99, debugFlag, lineObject.GetLine());
                break;
            }


            return(flag);
        }