//participant A
        //participant Long Name as A
        public override IEnumerable <Statement> Parse(Scanner scanner)
        {
            Token keywordToken = scanner.ReadWord();

            scanner.SkipWhiteSpaces();
            Token nameToken = scanner.ReadTo(AsKeyword);

            if (nameToken.IsEmpty())
            {
                yield return(new MissingArgumentStatement(keywordToken, nameToken));

                yield break;
            }
            if (scanner.Eol)
            {
                yield return(new SimpleParticipantStatement(keywordToken, nameToken));

                yield break;
            }

            scanner.ReadWord();
            scanner.SkipWhiteSpaces();
            Token idToken = scanner.ReadToEnd();

            if (idToken.Length == 0)
            {
                yield return(new MissingArgumentStatement(keywordToken, idToken));

                yield break;
            }

            yield return(new ParticipantStatement(keywordToken, idToken, nameToken));
        }
Exemple #2
0
        public override IEnumerable <Statement> Parse(Scanner scanner)
        {
            Token keyword = scanner.ReadWord();

            scanner.SkipWhiteSpaces();
            Token argument = scanner.ReadToEnd();

            yield return
                (!argument.IsEmpty()
                    ? (Statement) new UnexpectedArgumentStatement(keyword, argument)
                    : new EndStatement(keyword));
        }
        public override IEnumerable <Statement> Parse(Scanner scanner)
        {
            Token keyword = scanner.ReadWord();

            scanner.SkipWhiteSpaces();
            Token argument = scanner.ReadToEnd();

            yield return
                (argument.IsEmpty()
                    ? CreateEmptyStatement(keyword, argument)
                    : CreateStatement(keyword, argument));
        }