Exemplo n.º 1
0
def parse_package_string(code):
    '''
    Parse a string containing a package definition and it's 'use' statements.
    '''
    cleaned_code = inner_vhdl_parser.remove_comments(code.lower())
    parsed_packages = list(inner_vhdl_parser.VHDLPackage.find(cleaned_code))
    parsed_uses = get_parsed_dependencies(inner_vhdl_parser.VHDLReference.find(code.lower()))
    assert len(parsed_packages) == 1
    processed = process_parsed_package(parsed_packages[0], parsed_uses)
    return processed
Exemplo n.º 2
0
def parse_entity_string(code):
    '''
    Parse and process code for VHDL entity.

    >>> ent = parse_entity_string(TEST_ENTITY_STRING)
    >>> ent.ports['o_valid'].name
    'o_valid'
    >>> ent.ports['o_valid'].typ
    'std_logic'
    >>> ent.generics['fish'].typ
    'natural'
    '''
    cleaned_code = inner_vhdl_parser.remove_comments(code.lower())
    parsed_entities = list(inner_vhdl_parser.VHDLEntity.find(cleaned_code))
    parsed_uses = get_parsed_dependencies(inner_vhdl_parser.VHDLReference.find(code.lower()))
    assert len(parsed_entities) == 1
    processed = process_parsed_entity(parsed_entities[0], parsed_uses)
    return processed