/// Parse a block or component configuration. See IEEE 1076-2008 sections 3.4.2
/// and 3.4.3.
///
/// ```text
/// block_comp_config := "for" block_comp_spec [binding_ind] {block_config_item} "end" "for" ";"
/// block_comp_spec := name | {ident}","+ ":" name | "others" ":" name | "all" ":" name
/// ```
Parse a block or component configuration.


Parse a block or component configuration .
pub fn parse_block_comp_config<P: Parser>(p: &mut P) -> ReportedResult<ast::BlockCompCfg> {
    let mut span = p.peek(0).span;
    require(p, Keyword(Kw::For))?;
    let spec = parse_block_comp_spec(p)?;
    let bind = parse_binding_ind(p)?;
    let decl_items = repeat_until(p, Keyword(Kw::End), parse_block_comp_decl_item)?;
    require(p, Keyword(Kw::End))?;
    require(p, Keyword(Kw::For))?;
    require(p, Semicolon)?;
    span.expand(p.last_span());
    Ok(ast::BlockCompCfg {
        span: span,
        spec: spec,
        bind: bind,
        decls: decl_items,
    })
}
pub fn parse_block_comp_config < P : Parser > ( p : & mut P ) -> ReportedResult < ast :: BlockCompCfg > { let mut span = p . peek ( 0 ) . span ; require ( p , Keyword ( Kw :: For ) ) ? ; let spec = parse_block_comp_spec ( p ) ? ; let bind = parse_binding_ind ( p ) ? ; let decl_items = repeat_until ( p , Keyword ( Kw :: End ) , parse_block_comp_decl_item ) ? ; require ( p , Keyword ( Kw :: End ) ) ? ; require ( p , Keyword ( Kw :: For ) ) ? ; require ( p , Semicolon ) ? ; span . expand ( p . last_span ( ) ) ; Ok ( ast :: BlockCompCfg { span : span , spec : spec , bind : bind , decls : decl_items , } ) }
Parse a block or component configuration.
Parse a block or component configuration .
p
&mut P