Esempio n. 1
0
 private void HandleState(ParsingStates parsingState)
 {
     if (parsingState == ParsingStates.Error)
     {
         throw new InvalidSyntaxException($"Invalid syntax at line: {CurrentLine}, position: {CurrentIndexInLine}");
     }
 }
        public ParsingStates Move(CharacterTypes characterType, out AdditionalOperations[] additionalOperations)
        {
            Transition         transition         = new Transition(CurrentState, characterType);
            ParsingStates      nextState          = ParsingRules.StatesTable[transition];
            ParsingStateChange parsingStateChange = new ParsingStateChange(CurrentState, nextState);

            additionalOperations = null;
            if (ParsingRules.AdditionalParsingOperations.ContainsKey(parsingStateChange))
            {
                additionalOperations = ParsingRules.AdditionalParsingOperations[parsingStateChange];
            }

            CurrentState = nextState;
            return(CurrentState);
        }
Esempio n. 3
0
 public ParsingStateChange(ParsingStates startState, ParsingStates endState)
 {
     StartState = startState;
     EndState   = endState;
 }
Esempio n. 4
0
        protected virtual bool ProcessLine(string line)
        {
            bool retVal = true;

            line = line.Trim();
            if (line.EndsWith(","))
            {
                line = line.Substring(0, line.Length - 1);
            }

            if (line.StartsWith("#") || line.Length < 1)
            {
            }
            else if (line.StartsWith("KEY=", StringComparison.InvariantCultureIgnoreCase))
            {
                Tool.SetKey(line.Substring(4));
            }
            else if (line.StartsWith("CoachKEY=", StringComparison.InvariantCultureIgnoreCase))
            {
                Tool.CoachKey = line.Substring(9);
            }
            else if (line.StartsWith("SET"))
            {
                ApplySet(line);
            }
            else if (line.IndexOf("LookupAndModify", StringComparison.InvariantCultureIgnoreCase) > -1)
            {
                Console.WriteLine("LookupAndModifyMode");
                mCurrentState = ParsingStates.PlayerLookupAndApply;
            }
            else if ((mTeamMatch = mTeamRegex.Match(line)) != Match.Empty)
            {
                //Console.WriteLine("'{0}' ", line);
                mCurrentState = ParsingStates.PlayerModification;
                string team = mTeamMatch.Groups[1].ToString();
                bool   ret  = SetCurrentTeam(team);
                if (!ret)
                {
                    StaticUtils.AddError(string.Format("ERROR with line '{0}'.", line));
                    StaticUtils.AddError(string.Format("Team input must be in the form 'TEAM = team '"));
                    return(false);
                }
            }
            else if (mWeekRegex.Match(line) != Match.Empty)  //line.StartsWith("WEEK"))
            {
                mCurrentState = ParsingStates.Schedule;
                if (mScheduleList == null)
                {
                    mScheduleList = new List <string>(300);
                }
                mScheduleList.Add(line);
            }
            else if (mYearRegex.Match(line) != Match.Empty)//line.StartsWith("YEAR"))
            {
                SetYear(line);
            }
            else if (line.StartsWith("KR1,") || line.StartsWith("KR2,") || line.StartsWith("PR,") || line.StartsWith("LS,"))
            {
                SetSpecialTeamPlayer(line);
            }
            else if (line.Equals("AutoUpdateDepthChart"))
            {
                Tool.AutoUpdateDepthChart();
            }
            else if (line.Equals("AutoUpdatePBP"))
            {
                Tool.AutoUpdatePBP();
            }
            else if (line.Equals("AutoUpdatePhoto"))
            {
                Tool.AutoUpdatePhoto();
            }
            else if (line.StartsWith("Coach,", StringComparison.InvariantCultureIgnoreCase))
            {
                SetCoachData(line);
            }
            else if (line.StartsWith("LookupPlayer"))
            {
                mCurrentState    = ParsingStates.PlayerLookup;
                mLookupedPlayers = new StringBuilder(1000);
            }
            else if (line.StartsWith("ApplyFormula"))
            {
                ApplyFormula(line);
            }
            else
            {
                switch (mCurrentState)
                {
                case ParsingStates.PlayerModification:
                    retVal = InsertPlayer(line);
                    break;

                case ParsingStates.PlayerLookup:
                    mLookupedPlayers.Append(LookupPlayer(line));
                    mLookupedPlayers.Append("\n");
                    break;

                case ParsingStates.Schedule:
                    mScheduleList.Add(line.ToLower());
                    break;

                case ParsingStates.PlayerLookupAndApply:
                    retVal = LookupPlayerAndApply(line);
                    break;
                }
            }
            return(retVal);
        }
Esempio n. 5
0
 public Transition(ParsingStates currentState, CharacterTypes characterType)
 {
     CurrentState  = currentState;
     CharacterType = characterType;
 }
 public TransitionManager(ParsingStates parsingState)
 {
     CurrentState = parsingState;
 }
 public TransitionManager()
 {
     CurrentState = ParsingStates.Value;
 }
Esempio n. 8
0
        protected virtual void ProcessLine(string line)
        {
            line = line.Trim();
            if (line.EndsWith(","))
                line = line.Substring(0, line.Length - 1);

            if (line.StartsWith("#") || line.Length < 1)
            {
            }
            else if (line.StartsWith("KEY=", StringComparison.InvariantCultureIgnoreCase))
            {
                Tool.SetKey(line.Substring(4));
            }
            else if (line.StartsWith("CoachKEY=", StringComparison.InvariantCultureIgnoreCase))
            {
                Tool.CoachKey = line.Substring(9);
            }
            else if (line.StartsWith("SET"))
            {
                ApplySet(line);
            }
            else if ((mTeamMatch = mTeamRegex.Match(line)) != Match.Empty)
            {
                //Console.WriteLine("'{0}' ", line);
                mCurrentState = ParsingStates.PlayerModification;
                string team = mTeamMatch.Groups[1].ToString();
                bool ret = SetCurrentTeam(team);
                if (!ret)
                {
                    StaticUtils.AddError(string.Format("ERROR with line '{0}'.", line));
                    StaticUtils.AddError(string.Format("Team input must be in the form 'TEAM = team '"));
                    return;
                }
            }
            else if (mWeekRegex.Match(line) != Match.Empty)  //line.StartsWith("WEEK"))
            {
                mCurrentState = ParsingStates.Schedule;
                if (mScheduleList == null)
                    mScheduleList = new List<string>(300);
                mScheduleList.Add(line);
            }
            else if (mYearRegex.Match(line) != Match.Empty)//line.StartsWith("YEAR"))
            {
                SetYear(line);
            }
            else if (line.StartsWith("KR1,") || line.StartsWith("KR2,") || line.StartsWith("PR,") || line.StartsWith("LS,"))
            {
                SetSpecialTeamPlayer(line);
            }
            else if (line.StartsWith("Coach,", StringComparison.InvariantCultureIgnoreCase))
            {
                SetCoachData(line);
            }
            else
            {
                switch (mCurrentState)
                {
                    case ParsingStates.PlayerModification:
                        InsertPlayer(line);
                        break;
                    case ParsingStates.Schedule:
                        mScheduleList.Add(line);
                        break;
                }
            }
        }