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
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
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
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
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
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