fn param_list(&mut self) -> Result<Vec<Decl>> {
        let mut params = Vec::new();

        while let Some(tok) = self.lexer.peek() {
            if tok? == Token::RParen {
                break;
            }
            params.push(self.decl()?);

            if let Some(tok) = self.lexer.next() {
                match tok? {
                    Token::Comma => continue,
                    tok => {
                        self.lexer.put_back(tok);
                        break;
                    }
                }
            } else {
                return Err(eparse!(self, "unexpected end of function parameter list"));
            }
        }

        Ok(params)
    }
/// Parses a list of function parameters.
Parses a list of function parameters.
Parses a list of function parameters .
fn param_list(&mut self) -> Result<Vec<Decl>> {
        let mut params = Vec::new();
        while let Some(tok) = self.lexer.peek() {
            if tok? == Token::RParen {
                break;
            }
            params.push(self.decl()?);
            if let Some(tok) = self.lexer.next() {
                match tok? {
                    Token::Comma => continue,
                    tok => {
                        self.lexer.put_back(tok);
                        break;
                    }
                }
            } else {
                return Err(eparse!(self, "unexpected end of function parameter list"));
            }
        }
        Ok(params)
    }
fn param_list ( & mut self ) -> Result < Vec < Decl > > { let mut params = Vec :: new ( ) ; while let Some ( tok ) = self . lexer . peek ( ) { if tok ? == Token :: RParen { break ; } params . push ( self . decl ( ) ? ) ; if let Some ( tok ) = self . lexer . next ( ) { match tok ? { Token :: Comma => continue , tok => { self . lexer . put_back ( tok ) ; break ; } } } else { return Err ( eparse ! ( self " " ) ) ; } } Ok ( params ) }
Parses a list of function parameters.
Parses a list of function parameters .
&mut self
&mut self