code: func (p *Parser) ArgList() bool {
  
  	something := false
  
  	level := p.ev.Level()
  	defer p.ev.SetLevel(level)
  
  	for {
  		p.WhiteSpace()
  
  		p.ev.Add(TypeExpression)
  		p.ev.Inc()
  
  		if !p.Expression() {
  
  			p.ev.Dec()
  			p.ev.Delete()
  			return something
  		}
  		p.ev.Dec()
  		something = true
  
  		p.WhiteSpace()
  
  		c := p.PeekByte()
  
  		if c == ')' {
  			return true
  		}
  		if c == ',' {
  			p.Byte()
  			p.ev.SetLevel(level)
  		} else {
  			p.ev.Inc()
  		}
  
  	}
  }
docs: // ArgList ::= space? expression space? [, space? expression]* space?
  //
  // arglist < stream > events
  //
  // arglist can be empty, then returning false (this fact is not represented
  // in the BNF definition).
  //