//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));
        }
Ejemplo n.º 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));
        }
Ejemplo n.º 4
0
 public IEnumerable <StatementParser> Parsers()
 {
     while (m_Scanner.MoveNext())
     {
         m_Scanner.SkipWhiteSpaces();
         if (m_Scanner.Eol)
         {
             continue;
         }
         string          keyWordCandidate = m_Scanner.GetKeyWord();
         StatementParser statementParser  = m_StatementParserFactory.GetStatementParser(keyWordCandidate);
         yield return(statementParser);
     }
 }