static ParseResult<ACommandArgs>? ParseTocsCommand(string input)
        {
            var remaining = input;
            var commandParser = Parsers.SequenceRight(Parsers.RegexParser("A|a"), Parsers.WhitespaceParser);
            var commandParserResult = commandParser(remaining);
            if (commandParserResult == null)
            {
                return null;
            }
            remaining = commandParserResult.Value.Remaining;

            var eventIdParser = Parsers.SequenceRight(Parsers.RegexParser(@"\d{2}(T|t)\d{6}|/\d{4,6}"), Parsers.WhitespaceParser);
            var eventIdParseResult = eventIdParser(remaining);
            if (eventIdParseResult.HasValue)
            {
                remaining = eventIdParseResult.Value.Remaining;
            }

            var radioNumberParser = Parsers.SequenceRight(Parsers.RegexParser(@"\w+"), Parsers.WhitespaceParser);
            var radioNumbersParser = Parsers.ManyTill(radioNumberParser,
                Parsers.Choice(
                    Parsers.Lookahead(Parsers.RegexParser("(T|T)/")),
                    Parsers.WhitespaceParser,
                    Parsers.EOFParser
                ));
            var radioNumbersResult = radioNumbersParser(remaining);
            if (radioNumbersResult == null)
            {
                return null;
            }
            remaining = radioNumbersResult.Value.Remaining;

            var optionalTextParser = Parsers.SequenceLeft(Parsers.RegexParser("(T|t)/"), Parsers.RegexParser(@"[\w\s]+"));
            var optionalTextResult = optionalTextParser(remaining);
            if (optionalTextResult.HasValue)
            {
                remaining = optionalTextResult.Value.Remaining;
            }

            var commandArgs = new ACommandArgs
            {
                Command = commandParserResult.Value.Output,
                EventId = eventIdParseResult?.Output,
                RadioNumbers = radioNumbersResult.Value.Output,
                OptionalText = optionalTextResult?.Output
            };

            return new ParseResult<ACommandArgs>(remaining, commandArgs);
        }
Example #2
0
 public ICommand Clone(ACommandArgs args)
 {
     return(new HalfLifeDegreeCommand((HalfLifeDegreeCommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new RemoveModelsCommand((RemoveModelsCommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new GraphsUnionCommand((GraphUnionCommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new WayNoMoreThenLCommand <TVertex>((WayNoMoreThenLCommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new SaveAlgorithmResultCommand((SaveAlgorithmResultCommandArgs)args, Field));
 }
Example #7
0
 public ICommand Clone(ACommandArgs args)
 {
     return(new RemoveStoredGraphCommand((RemoveStoredGraphCommandArgs)args, Field));
 }
Example #8
0
 public ICommand Clone(ACommandArgs args)
 {
     return(new DijkstraAlgorithm <TVertex>((DijkstraCommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new AddModelCommand((AddModelCommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new ConnectedComponentsCommand <TVertex>(
                (ConnectedComponentsCommandArgs)args, Field));
 }
Example #11
0
 public ICommand Clone(ACommandArgs args)
 {
     return(new MoveVertexModelCommand((MoveVertexModelCommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new OpenGraphInFileCommand((OpenGraphInFileCommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new AddCurrentGraphInStoredGraphsCommand(
                (AddCurrentGraphInStoredGraphsCommandArgs)args, Field));
 }
Example #14
0
 public ICommand Clone(ACommandArgs args)
 {
     return(new MSTCommand <TVertex>((MSTCommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new NPeripheryCommand <TVertex>((NPeripheryCommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new EdmondsKarpAlgorithm <TVertex>((EdmondsKarpCommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new DFSalgorithmCommand <TVertex>((DFScommandArgs)args, Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new CreateGraphCommand((CreateGraphCommandArgs)args, Field));
 }
Example #19
0
 public ICommand Clone(ACommandArgs args)
 {
     return(new SaveGraphToFileCommand((SaveGraphToFileCommandArgs)args, Field));
 }
Example #20
0
 public ICommand Clone(ACommandArgs args)
 {
     return(new RemoveGraphCommand(Field));
 }
 public ICommand Clone(ACommandArgs args)
 {
     return(new ShortcutBFSalgorithmCommand <TVertex>((ShortcutBFSCommandArgs)args, Field));
 }