예제 #1
0
        /// <summary>
        /// Handle commands at the Read level
        /// </summary>
        /// <param name="buffer">Line buffer</param>
        /// <param name="parser">Parser</param>
        private bool ReadCommand(LineBuffer buffer, Parser parser)
        {
            switch (parser.NextCommand())
            {
            case Parser.ParseToken.COMMENT:
                CommentCommand(buffer, parser);
                break;

            case Parser.ParseToken.SAY:
                SayCommand(buffer);
                break;

            case Parser.ParseToken.OPTION:
                ChangeState(CoSyState.OPT);
                OptionCommand(parser);
                break;

            case Parser.ParseToken.JOIN:
                JoinCommand(buffer, parser);
                break;

            case Parser.ParseToken.RESIGN:
                ResignCommand(buffer, parser);
                break;

            case Parser.ParseToken.KILLSCRATCH:
                _scratch.Clear();
                buffer.WriteLine("Scratchpad Deleted");
                break;

            case Parser.ParseToken.BYE:
                return(ByeCommand(buffer, parser));

            case Parser.ParseToken.QUIT:
                QuitState();
                break;
            }
            return(false);
        }
예제 #2
0
        /// <summary>
        /// Handle commands at the Read level
        /// </summary>
        /// <param name="buffer">Line buffer</param>
        /// <param name="parser">Parser</param>
        private bool ReadCommand(LineBuffer buffer, Parser parser)
        {
            switch (parser.NextCommand())
            {
                case Parser.ParseToken.COMMENT:
                    CommentCommand(buffer, parser);
                    break;

                case Parser.ParseToken.SAY:
                    SayCommand(buffer);
                    break;

                case Parser.ParseToken.OPTION:
                    ChangeState(CoSyState.OPT);
                    OptionCommand(parser);
                    break;

                case Parser.ParseToken.JOIN:
                    JoinCommand(buffer, parser);
                    break;

                case Parser.ParseToken.RESIGN:
                    ResignCommand(buffer, parser);
                    break;

                case Parser.ParseToken.KILLSCRATCH:
                    _scratch.Clear();
                    buffer.WriteLine("Scratchpad Deleted");
                    break;

                case Parser.ParseToken.BYE:
                    return ByeCommand(buffer, parser);

                case Parser.ParseToken.QUIT:
                    QuitState();
                    break;
            }
            return false;
        }
예제 #3
0
        /// <summary>
        /// Handle commands at the main level.
        /// </summary>
        /// <param name="buffer">Line buffer</param>
        /// <param name="parser">The command parser</param>
        private bool MainCommand(LineBuffer buffer, Parser parser)
        {
            Parser.ParseToken nextCommand = parser.NextCommand();

            if (nextCommand == Parser.ParseToken.FILE)
            {
                buffer.Output = _scratch;
                nextCommand = parser.NextCommand();
            }

            switch (nextCommand)
            {
                case Parser.ParseToken.DOWNLOAD:
                    DownloadCommand(buffer);
                    break;

                case Parser.ParseToken.UPLOAD:
                    UploadCommand(buffer);
                    break;

                case Parser.ParseToken.OPTION:
                    ChangeState(CoSyState.OPT);
                    OptionCommand(parser);
                    break;

                case Parser.ParseToken.SCPUT:
                    ScputCommand(parser);
                    break;

                case Parser.ParseToken.SCRIPT:
                    buffer.Script = _script;
                    break;

                case Parser.ParseToken.JOIN:
                    JoinCommand(buffer, parser);
                    break;

                case Parser.ParseToken.RESIGN:
                    ResignCommand(buffer, parser);
                    break;

                case Parser.ParseToken.READ:
                    if (parser.NextArgument() == "all")
                    {
                        buffer.WriteLine("......");
                        ReadScratchpad(buffer);
                        buffer.WriteLine("");
                        ShowScratchpadSize(buffer);
                    }
                    break;

                case Parser.ParseToken.KILLSCRATCH:
                    _scratch.Clear();
                    buffer.WriteLine("Scratchpad Deleted");
                    break;

                case Parser.ParseToken.BYE:
                    return ByeCommand(buffer, parser);
            }
            return false;
        }
예제 #4
0
        /// <summary>
        /// Handle commands at the main level.
        /// </summary>
        /// <param name="buffer">Line buffer</param>
        /// <param name="parser">The command parser</param>
        private bool MainCommand(LineBuffer buffer, Parser parser)
        {
            Parser.ParseToken nextCommand = parser.NextCommand();

            if (nextCommand == Parser.ParseToken.FILE)
            {
                buffer.Output = _scratch;
                nextCommand   = parser.NextCommand();
            }

            switch (nextCommand)
            {
            case Parser.ParseToken.DOWNLOAD:
                DownloadCommand(buffer);
                break;

            case Parser.ParseToken.UPLOAD:
                UploadCommand(buffer);
                break;

            case Parser.ParseToken.OPTION:
                ChangeState(CoSyState.OPT);
                OptionCommand(parser);
                break;

            case Parser.ParseToken.SCPUT:
                ScputCommand(parser);
                break;

            case Parser.ParseToken.SCRIPT:
                buffer.Script = _script;
                break;

            case Parser.ParseToken.JOIN:
                JoinCommand(buffer, parser);
                break;

            case Parser.ParseToken.RESIGN:
                ResignCommand(buffer, parser);
                break;

            case Parser.ParseToken.READ:
                if (parser.NextArgument() == "all")
                {
                    buffer.WriteLine("......");
                    ReadScratchpad(buffer);
                    buffer.WriteLine("");
                    ShowScratchpadSize(buffer);
                }
                break;

            case Parser.ParseToken.KILLSCRATCH:
                _scratch.Clear();
                buffer.WriteLine("Scratchpad Deleted");
                break;

            case Parser.ParseToken.BYE:
                return(ByeCommand(buffer, parser));
            }
            return(false);
        }