/// <summary>
 /// Initializes the node after being parsed by the parser.
 /// </summary>
 /// <param name="primary">Primary of the argument.</param>
 /// <param name="messages">Optional message or a sequence of messages sent to the primary.</param>
 protected internal void SetContents(IPrimaryNode primary, UnaryMessageSequenceNode messages)
 {
     if (primary == null)
     {
         throw new ArgumentNullException("primary");
     }
     this.Primary  = primary;
     this.Messages = messages; // OK if this is null
 }
 /// <summary>
 /// Initializes the node after being parsed by the parser.
 /// </summary>
 /// <param name="message">The first (current) message in the message sequence.</param>
 /// <param name="nextMessage">Optional sequence of messages that may follow this message.</param>
 protected internal void SetContents(UnaryMessageNode message, UnaryMessageSequenceNode nextMessage)
 {
     if (message == null)
     {
         throw new ArgumentNullException("message");
     }
     this.Message     = message;
     this.NextMessage = nextMessage; // OK with null.
 }
 /// <summary>
 /// Initializes the node after being parsed by the parser.
 /// </summary>
 /// <param name="primary">Primary of the argument.</param>
 /// <param name="messages">Optional message or a sequence of messages sent to the primary.</param>
 protected internal void SetContents(IPrimaryNode primary, UnaryMessageSequenceNode messages)
 {
     if (primary == null)
         throw new ArgumentNullException("primary");
     this.Primary = primary;
     this.Messages = messages; // OK if this is null
 }
 /// <summary>
 /// Initializes the node after being parsed by the parser.
 /// </summary>
 /// <param name="message">The first (current) message in the message sequence.</param>
 /// <param name="nextMessage">Optional sequence of messages that may follow this message.</param>
 protected internal void SetContents(UnaryMessageNode message, UnaryMessageSequenceNode nextMessage)
 {
     if (message == null)
         throw new ArgumentNullException("message");
     this.Message = message;
     this.NextMessage = nextMessage; // OK with null.
 }
Beispiel #5
0
        protected virtual UnaryMessageSequenceNode ParseUnaryMessageSequence(IMessageSequenceParentNode parent, IdentifierToken selector)
        {
            // PARSE: <unary message>*
            UnaryMessageSequenceNode result = new UnaryMessageSequenceNode(parent);

            // NB: ParseUnaryMessage() cannot fail, so we don't check result
            UnaryMessageNode message = this.ParseUnaryMessage(result, selector);

            Token token = this.GetNextTokenxx(Preference.Default);

            UnaryMessageSequenceNode nextMessage = null;
            if (token is IdentifierToken)
                nextMessage = this.ParseUnaryMessageSequence(result, (IdentifierToken)token);
            else
                this.ResidueToken = token;

            result.SetContents(message, nextMessage);
            return result;
        }