code: func (st *state) exprList(stop byte) AST {
  	if len(st.str) > 0 && st.str[0] == stop {
  		st.advance(1)
  		return &ExprList{Exprs: nil}
  	}
  
  	var exprs []AST
  	for {
  		e := st.expression()
  		exprs = append(exprs, e)
  		if len(st.str) > 0 && st.str[0] == stop {
  			st.advance(1)
  			break
  		}
  	}
  	return &ExprList{Exprs: exprs}
  }
docs: // exprList parses a sequence of expressions up to a terminating character.