Exemplo n.º 1
0
def classify_opening_declaration(iToken, lObjects):

    iCurrent = utils.assign_next_token_required('configuration', token.configuration_keyword, iToken, lObjects)
    iCurrent = utils.assign_next_token(token.identifier, iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required('of', token.of_keyword, iCurrent, lObjects)
    iCurrent = utils.assign_next_token(token.entity_name, iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required('is', token.is_keyword, iCurrent, lObjects)

    return iCurrent
Exemplo n.º 2
0
def classify(iToken, lObjects):

    iCurrent = utils.assign_next_token_required('group', token.group_keyword, iToken, lObjects)
    iCurrent = utils.assign_next_token(token.identifier, iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required(':', token.colon, iCurrent, lObjects)
    iCurrent = utils.assign_next_token(token.group_template_name, iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required('(', token.open_parenthesis, iCurrent, lObjects)
    iCurrent = group_constituent_list.classify(iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required(')', token.close_parenthesis, iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required(';', token.semicolon, iCurrent, lObjects)

    return iCurrent
def classify(iToken, lObjects):

    iCurrent = utils.assign_next_token_required('context', token.keyword,
                                                iToken, lObjects)
    iCurrent = utils.assign_next_token(token.selected_name, iCurrent, lObjects)
    while utils.is_next_token(',', iCurrent, lObjects):
        iCurrent = utils.assign_next_token_required(',', token.comma, iCurrent,
                                                    lObjects)
        iCurrent = utils.assign_next_token(token.selected_name, iCurrent,
                                           lObjects)

    iCurrent = utils.assign_next_token_required(';', token.semicolon, iCurrent,
                                                lObjects)
    return iCurrent
Exemplo n.º 4
0
def classify(iToken, lObjects):
    '''
    association_list ::=
        association_element { , association_element }
    '''
    iCurrent = utils.assign_next_token(token.group_constituent, iToken,
                                       lObjects)

    while utils.is_next_token(',', iCurrent, lObjects):
        iCurrent = utils.assign_next_token_required(',', token.comma, iCurrent,
                                                    lObjects)
        iCurrent = utils.assign_next_token(token.group_constituent, iToken,
                                           lObjects)

    return iCurrent
def classify(iToken, lObjects):

    iCurrent = utils.assign_next_token_if('pure', token.pure_keyword, iToken,
                                          lObjects)
    iCurrent = utils.assign_next_token_if('impure', token.impure_keyword,
                                          iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required('function',
                                                token.function_keyword, iToken,
                                                lObjects)
    iCurrent = utils.assign_next_token(token.designator, iCurrent, lObjects)
    iCurrent = utils.assign_next_token_if('parameter', token.parameter_keyword,
                                          iCurrent, lObjects)

    if utils.is_next_token('(', iCurrent, lObjects):
        iCurrent = utils.assign_next_token_required('(',
                                                    token.open_parenthesis,
                                                    iCurrent, lObjects)

        iCurrent = formal_parameter_list.classify(iCurrent, lObjects)

        iCurrent = utils.assign_next_token_required(')',
                                                    token.close_parenthesis,
                                                    iCurrent, lObjects)

    iCurrent = utils.assign_next_token_required('return', token.return_keyword,
                                                iToken, lObjects)
    iCurrent = type_mark.classify(iToken, lObjects)

    return iCurrent
def classify(iToken, lObjects):

    iCurrent = utils.assign_next_token_required('alias', token.alias_keyword,
                                                iToken, lObjects)

    iCurrent = utils.assign_next_token(token.alias_designator, iCurrent,
                                       lObjects)

    if utils.is_next_token(':', iCurrent, lObjects):
        iCurrent = utils.assign_next_token_required(':', token.colon, iCurrent,
                                                    lObjects)
        iCurrent = subtype_indication.classify_until(['is'], iCurrent,
                                                     lObjects)

    iCurrent = utils.assign_next_token_required('is', token.is_keyword,
                                                iCurrent, lObjects)

    iCurrent = name.classify_until([';', '['], iCurrent, lObjects)

    iCurrent = signature.detect(iCurrent, lObjects)

    iCurrent = utils.assign_next_token_required(';', token.semicolon, iCurrent,
                                                lObjects)

    return iCurrent
Exemplo n.º 7
0
def classify(iToken, lObjects, oType=token.identifier):
    '''
    identifier ::=
        basic_identifier | extended_identifier
    '''

    return utils.assign_next_token(oType, iToken, lObjects)
Exemplo n.º 8
0
def classify(iToken, lObjects):
    '''
    type_mark ::=
        *type*_name
      | *subtype*_name
    '''

    return utils.assign_next_token(token.name, iToken, lObjects)
def classify_opening_declaration(iToken, lObjects):

    iCurrent = utils.assign_next_token_required('package',
                                                token.package_keyword, iToken,
                                                lObjects)
    iCurrent = utils.assign_next_token(token.identifier, iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required('is', token.is_keyword,
                                                iCurrent, lObjects)

    return iCurrent
def classify(iToken, lObjects):

    iCurrent = subprogram_kind.classify(iToken, lObjects)

    iCurrent = utils.assign_next_token(token.identifier, iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required('is', token.is_keyword,
                                                iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required('new', token.new_keyword,
                                                iCurrent, lObjects)
    iCurrent = utils.assign_next_token(token.uninstantiated_subprogram_name,
                                       iCurrent, lObjects)

    iCurrent = signature.detect(iCurrent, lObjects)

    iCurrent = generic_map_aspect.detect(iCurrent, lObjects)

    iCurrent = utils.assign_next_token_required(';', token.semicolon, iCurrent,
                                                lObjects)

    return iCurrent
Exemplo n.º 11
0
def classify(iToken, lObjects):

    iCurrent = utils.assign_next_token_required('attribute', token.attribute_keyword, iToken, lObjects)
    iCurrent = utils.assign_next_token(token.identifier, iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required(':', token.colon, iCurrent, lObjects)

    iCurrent = type_mark.classify(iCurrent, lObjects)

    iCurrent = utils.assign_next_token_required(';', token.semicolon, iCurrent, lObjects)

    return iCurrent
Exemplo n.º 12
0
def classify(iToken, lObjects):
    '''
    entity_designator ::=
        entity_tag [ signature ]
    '''

    iCurrent = utils.assign_next_token(token.entity_tag, iToken, lObjects)

    iCurrent = signature.detect(iCurrent, lObjects)

    return iCurrent
def classify(iToken, lObjects):

    iCurrent = utils.assign_next_token_required('procedure', token.procedure_keyword, iToken, lObjects)
    iCurrent = utils.assign_next_token(token.designator, iCurrent, lObjects)
    iCurrent = utils.assign_next_token_if('parameter', token.parameter_keyword, iCurrent, lObjects)

    if utils.is_next_token('(', iCurrent, lObjects):
        iCurrent = utils.assign_next_token_required('(', token.open_parenthesis, iCurrent, lObjects)
        iCurrent = formal_parameter_list.classify(iCurrent, lObjects)
        iCurrent = utils.assign_next_token_required(')', token.close_parenthesis, iCurrent, lObjects)

    return iCurrent
Exemplo n.º 14
0
def classify_until(lUntils, iToken, lObjects):
    '''
    parameter_specification ::=
        identifier in discrete_range
    '''

    iCurrent = utils.assign_next_token(token.identifier, iToken, lObjects)
    iCurrent = utils.assign_next_token_required('in', token.in_keyword, iCurrent, lObjects)

    iCurrent = discrete_range.classify_until(lUntils, iCurrent, lObjects)

    return iCurrent
def classify(iToken, lObjects):
    iCurrent = utils.assign_next_token_required('(', token.open_parenthesis,
                                                iToken, lObjects)

    while not utils.is_next_token(')', iCurrent, lObjects):
        iCurrent = utils.assign_next_token_if(',', token.comma, iCurrent,
                                              lObjects)
        iCurrent = utils.assign_next_token(token.enumeration_literal, iCurrent,
                                           lObjects)

    iCurrent = utils.assign_next_token_required(')', token.close_parenthesis,
                                                iCurrent, lObjects)
    return iCurrent
Exemplo n.º 16
0
def classify_until(lUntils, iToken, lObjects):
    '''
    sensitivity_list ::=
        *signal*_name { , *signal*_name}
    '''

    iCurrent = iToken
    iLast = 0
    while iLast != iCurrent:
        iLast = iCurrent
        if lObjects[utils.find_next_token(iCurrent, lObjects)].get_value().lower() in lUntils:
            return iCurrent
        iCurrent = utils.assign_next_token_if(',', token.comma, iCurrent, lObjects)
        iCurrent = utils.assign_next_token(parser.todo, iCurrent, lObjects)
def classify(iToken, lObjects):
    '''
    entity_specification ::=
        entity_name_list : entity_class
    '''

    iCurrent = entity_name_list.classify(iToken, lObjects)

    iCurrent = utils.assign_next_token_required(':', token.colon, iCurrent,
                                                lObjects)

    iCurrent = utils.assign_next_token(token.entity_class, iCurrent, lObjects)

    return iCurrent
Exemplo n.º 18
0
def classify_until(lUntils, iToken, lObjects):
    '''
    choice ::=
        simple_expression
      | discrete_range
      | *element*_simple_name
      | others
    '''

    for iIndex in range(iToken, len(lObjects)):
        if not utils.is_item(lObjects, iIndex):
            continue
        if utils.is_next_token_in_list(lUntils, iIndex, lObjects):
            return iIndex
        else:
            if utils.is_next_token('others', iIndex, lObjects):
                utils.assign_next_token_required('others',
                                                 token.others_keyword, iIndex,
                                                 lObjects)
            else:
                utils.assign_next_token(parser.todo, iIndex, lObjects)

    return iToken
Exemplo n.º 19
0
def classify(iToken, lObjects):

    iCurrent = utils.tokenize_label(iToken, lObjects, token.label, token.label_colon)
    iCurrent = utils.assign_next_token_required('next', token.next_keyword, iCurrent, lObjects)

    if not utils.is_next_token(';', iCurrent, lObjects) and not utils.is_next_token('when', iCurrent, lObjects):
        iCurrent = utils.assign_next_token(token.loop_label, iCurrent, lObjects)

    if utils.is_next_token('when', iCurrent, lObjects):
        iCurrent = utils.assign_next_token_required('when', token.when_keyword, iCurrent, lObjects)
        iCurrent = condition.classify_until([';'], iCurrent, lObjects)

    iCurrent = utils.assign_next_token_required(';', token.semicolon, iCurrent, lObjects)

    return iCurrent
Exemplo n.º 20
0
def classify(iToken, lObjects):

    iCurrent = iToken

    if utils.is_next_token('component', iCurrent, lObjects):
        iCurrent = utils.assign_next_token_required('component',
                                                    token.component_keyword,
                                                    iCurrent, lObjects)
        iCurrent = utils.assign_next_token(token.component_name, iCurrent,
                                           lObjects)

    elif utils.is_next_token('configuration', iCurrent, lObjects):
        iCurrent = utils.assign_next_token_required(
            'configuration', token.configuration_keyword, iCurrent, lObjects)
        iCurrent = utils.assign_next_token(token.configuration_name, iCurrent,
                                           lObjects)

    elif utils.is_next_token('entity', iCurrent, lObjects):
        iCurrent = utils.assign_next_token_required('entity',
                                                    token.entity_keyword,
                                                    iCurrent, lObjects)
        iCurrent = utils.assign_next_token(token.entity_name, iCurrent,
                                           lObjects)

        if utils.is_next_token('(', iCurrent, lObjects):
            iCurrent = utils.assign_next_token_required(
                '(', token.open_parenthesis, iCurrent, lObjects)
            iCurrent = utils.assign_next_token_if_not(
                ')', token.architecture_identifier, iCurrent, lObjects)
            iCurrent = utils.assign_next_token_required(
                ')', token.close_parenthesis, iCurrent, lObjects)
    else:
        iCurrent = utils.assign_next_token(token.component_name, iCurrent,
                                           lObjects)

    return iCurrent
Exemplo n.º 21
0
def classify(iToken, lObjects):

    iCurrent = iToken

    if utils.is_next_token('open', iCurrent, lObjects):
        iCurrent = utils.assign_next_token_required('open', token.open_keyword,
                                                    iCurrent, lObjects)
        iCurrent = utils.assign_next_token(token.file_open_kind_expression,
                                           iCurrent, lObjects)

    iCurrent = utils.assign_next_token_required('is', token.is_keyword,
                                                iCurrent, lObjects)

    iCurrent = file_logical_name.classify(iCurrent, lObjects)

    return iCurrent
Exemplo n.º 22
0
def classify_until(lUntils, iToken, lObjects):
    '''
    logical_name_list ::=
        logical_name { , logical_name }
    '''
    iCurrent = iToken
    iLast = 0
    while iLast != iCurrent:
        iLast = iCurrent
        if lObjects[utils.find_next_token(
                iCurrent, lObjects)].get_value().lower() in lUntils:
            return iCurrent
        iCurrent = utils.assign_next_token_if(',', token.comma, iCurrent,
                                              lObjects)
        iCurrent = utils.assign_next_token(token.logical_name, iCurrent,
                                           lObjects)
def classify(iToken, lObjects):

    iCurrent = utils.assign_next_token_required('package',
                                                token.package_keyword, iToken,
                                                lObjects)

    iCurrent = identifier.classify(iCurrent, lObjects)

    iCurrent = utils.assign_next_token_required('is', token.is_keyword,
                                                iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required('new', token.new_keyword,
                                                iCurrent, lObjects)
    iCurrent = utils.assign_next_token(token.uninstantiated_package_name,
                                       iCurrent, lObjects)

    iCurrent = interface_package_generic_map_aspect.detect(iCurrent, lObjects)

    return iCurrent
Exemplo n.º 24
0
def classify(iToken, lObjects):
    '''
    procedure_call ::=
        *procedure*_name [ ( actual_parameter_part ) ]
    '''

    iCurrent = utils.assign_next_token(token.procedure_name, iToken, lObjects)

    if utils.is_next_token('(', iToken, lObjects):
        iCurrent = utils.assign_next_token_required('(',
                                                    token.open_parenthesis,
                                                    iCurrent, lObjects)

        iCurrent = actual_parameter_part.classify(iCurrent, lObjects)

        iCurrent = utils.assign_next_token_required(')',
                                                    token.close_parenthesis,
                                                    iCurrent, lObjects)

    return iCurrent
Exemplo n.º 25
0
def classify(iToken, lObjects):

    iCurrent = utils.assign_next_token_required('context',
                                                token.context_keyword, iToken,
                                                lObjects)
    iCurrent = utils.assign_next_token(token.identifier, iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required('is', token.is_keyword,
                                                iCurrent, lObjects)

    iCurrent = context_clause.detect(iCurrent, lObjects)

    iCurrent = utils.assign_next_token_required('end', token.end_keyword,
                                                iCurrent, lObjects)
    iCurrent = utils.assign_next_token_if('context', token.end_context_keyword,
                                          iCurrent, lObjects)
    iCurrent = utils.assign_next_token_if_not(';', token.context_simple_name,
                                              iCurrent, lObjects)
    iCurrent = utils.assign_next_token_required(';', token.semicolon, iCurrent,
                                                lObjects)

    return iCurrent
Exemplo n.º 26
0
def classify(iToken, lObjects):

    iCurrent = utils.assign_next_token_required('attribute',
                                                token.attribute_keyword,
                                                iToken, lObjects)
    iCurrent = utils.assign_next_token(token.attribute_designator, iCurrent,
                                       lObjects)
    iCurrent = utils.assign_next_token_required('of', token.of_keyword,
                                                iCurrent, lObjects)

    iCurrent = entity_specification.classify(iCurrent, lObjects)

    iCurrent = utils.assign_next_token_required('is', token.is_keyword,
                                                iCurrent, lObjects)

    iCurrent = expression.classify_until([';'], iCurrent, lObjects)

    iCurrent = utils.assign_next_token_required(';', token.semicolon, iCurrent,
                                                lObjects)

    return iCurrent