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); }
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); }
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); }
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); }
public static bool CheckWholeLine(LineObject lineObject, bool printFlag, CheckObject checkObject) { string line = lineObject.GetLine(); string startStr = checkObject.GetStartStr(); bool flag = line.Equals(startStr); bool isTab = checkObject.IsTab(); int beginIndex = 0; int endIndex = startStr.Length; if (isTab == true) { beginIndex = 1; } if (!flag) { ErrMsg.PrintErrMsg(printFlag, checkObject.GetStartErrMsg(), lineObject, null, beginIndex, endIndex, isTab); } return(flag); }
public static bool CheckStartStr(LineObject lineObject, bool printFlag, CheckObject checkObject) { string line = lineObject.GetLine(); string startStr = checkObject.GetStartStr(); bool flag = line.StartsWith(startStr, StringComparison.Ordinal); bool isTab = checkObject.IsTab(); int beginIndex = 0; int endIndex = startStr.Length - 1; if (isTab == true) { beginIndex = 1; } if (!flag) { ErrMsg.PrintErrMsg(printFlag, checkObject.GetStartErrMsg(), lineObject, null, beginIndex, endIndex, isTab); } return(flag); }
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); }
public static bool CheckSlotFiller(LineObject lineObject, bool printFlag, CheckObject checkObject, TokenObject tokenObject, bool checkLength) { string line = lineObject.GetLine(); bool isTab = checkObject.IsTab(); string slot = null; string filler = null; string delim = checkObject.GetDelim(); int index = line.IndexOf(delim, StringComparison.Ordinal); if (index != -1) { if (ReferenceEquals(delim, "=")) { slot = line.Substring(0, index + 1); filler = line.Substring(index + 1); } else { slot = line.Substring(0, index + 1); filler = line; } } else { ErrMsg.PrintErrMsg(printFlag, 80, lineObject, line, 0, line.Length, isTab); return(false); } bool flag = false; string startStr = checkObject.GetStartStr(); if (!ReferenceEquals(startStr, null)) { flag = slot.Equals(startStr); } if (!flag) { ErrMsg.PrintErrMsg(printFlag, checkObject.GetStartErrMsg(), lineObject, slot, 0, index, isTab); return(flag); } flag = CheckFillerFormat.IsLegalFormat(printFlag, lineObject, filler, index, isTab, checkLength); if (!flag) { return(false); } CheckFormat fillerFormat = checkObject.GetFillerFormat(); if (fillerFormat != null) { flag = fillerFormat.IsLegalFormat(filler); if (!flag) { ErrMsg.PrintErrMsg(printFlag, checkObject.GetFillerErrMsg(), lineObject, filler, index + 1, index + filler.Length, isTab); return(flag); } } if ((flag == true) && (tokenObject != null)) { tokenObject.SetToken(filler); } return(flag); }