示例#1
0
def parse(acacia_ltl_text: str, acacia_part_text: str, logger: Logger) -> (list, list, dict):
    acacia_ltl_text = _add_spec_unit_if_necessary(acacia_ltl_text)

    input_signals, output_signals = _parse_part(acacia_part_text)
    data_by_unit = dict(acacia_parser.parse(acacia_ltl_text, lexer=acacia_lexer))

    known_signals = input_signals + output_signals
    for (assumptions, guarantees) in data_by_unit.values():
        error = check_unknown_signals_in_properties(assumptions + guarantees, known_signals)

        if error:
            logger.error(error)
            return None

    return input_signals, output_signals, data_by_unit
示例#2
0
def parse(acacia_ltl_text:str, acacia_part_text:str)\
        -> (Iterable[Signal],Iterable[Signal],dict):
    """ :return: inputs, outputs, dict{unit_name -> (assumptions,guarantees)} """
    acacia_ltl_text = _add_spec_unit_if_necessary(acacia_ltl_text)

    input_signals, output_signals = _parse_part(acacia_part_text)
    data_by_unit = dict(acacia_parser.parse(acacia_ltl_text, lexer=acacia_lexer))

    known_signals = input_signals + output_signals
    for (assumptions,guarantees) in data_by_unit.values():
        error = check_unknown_signals_in_properties(assumptions+guarantees, known_signals)

        if error:
            logging.error(error)
            return None

    return input_signals, output_signals, data_by_unit
示例#3
0
def parse(acacia_ltl_text: str, acacia_part_text: str,
          logger: Logger) -> (list, list, dict):
    acacia_ltl_text = _add_spec_unit_if_necessary(acacia_ltl_text)

    input_signals, output_signals = _parse_part(acacia_part_text)
    data_by_unit = dict(
        acacia_parser.parse(acacia_ltl_text, lexer=acacia_lexer))

    known_signals = input_signals + output_signals
    for (assumptions, guarantees) in data_by_unit.values():
        error = check_unknown_signals_in_properties(assumptions + guarantees,
                                                    known_signals)

        if error:
            logger.error(error)
            return None

    return input_signals, output_signals, data_by_unit
示例#4
0
def parse(acacia_ltl_text:str, acacia_part_text:str)\
        -> (Iterable[Signal],Iterable[Signal],dict):
    """ :return: inputs, outputs, dict{unit_name -> (assumptions,guarantees)} """
    acacia_ltl_text = _add_spec_unit_if_necessary(acacia_ltl_text)

    input_signals, output_signals = _parse_part(acacia_part_text)
    data_by_unit = dict(
        acacia_parser.parse(acacia_ltl_text, lexer=acacia_lexer))

    known_signals = input_signals + output_signals
    for (assumptions, guarantees) in data_by_unit.values():
        error = check_unknown_signals_in_properties(assumptions + guarantees,
                                                    known_signals)

        if error:
            logging.error(error)
            return None

    return input_signals, output_signals, data_by_unit
示例#5
0
def parse_ltl(anzu_text, logger: Logger) -> dict:
    """ Return {section:data} or None in case of error """
    section_name_to_data = dict(anzu_parser.parse(anzu_text, lexer=anzu_lexer))

    input_signals = section_name_to_data[ANZU_INPUT_VARIABLES]
    output_signals = section_name_to_data[ANZU_OUTPUT_VARIABLES]
    known_signals = input_signals + output_signals

    for asts in (section_name_to_data[ANZU_ENV_FAIRNESS],
                 section_name_to_data[ANZU_ENV_INITIAL],
                 section_name_to_data[ANZU_ENV_TRANSITIONS],
                 section_name_to_data[ANZU_SYS_FAIRNESS],
                 section_name_to_data[ANZU_SYS_INITIAL],
                 section_name_to_data[ANZU_SYS_TRANSITIONS]):
        error = check_unknown_signals_in_properties(asts, known_signals)
        if error:
            logger.error(error)
            return None

    return section_name_to_data
示例#6
0
def parse_ltl(anzu_text, logger:Logger) -> dict:
    """ Return {section:data} or None in case of error """
    section_name_to_data = dict(anzu_parser.parse(anzu_text, lexer=anzu_lexer))

    input_signals = section_name_to_data[ANZU_INPUT_VARIABLES]
    output_signals = section_name_to_data[ANZU_OUTPUT_VARIABLES]
    known_signals = input_signals + output_signals

    for asts in (section_name_to_data[ANZU_ENV_FAIRNESS],
                 section_name_to_data[ANZU_ENV_INITIAL],
                 section_name_to_data[ANZU_ENV_TRANSITIONS],
                 section_name_to_data[ANZU_SYS_FAIRNESS],
                 section_name_to_data[ANZU_SYS_INITIAL],
                 section_name_to_data[ANZU_SYS_TRANSITIONS]):
        error = check_unknown_signals_in_properties(asts, known_signals)
        if error:
            logger.error(error)
            return None

    return section_name_to_data