main_window.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:simone 作者: matheuspb 项目源码 文件源码
def _update_grammar_text(self) -> None:
        """
            "B", {"aB", "bC", "a"} turns into
            "B -> aB | bC | a"
        """
        def transform_production(non_terminal: str, productions: Set[str]):
            return "{} -> {}".format(
                non_terminal, " | ".join(sorted(productions)))

        initial_symbol = self._grammar.initial_symbol()
        productions = self._grammar.productions()

        text = ""

        if initial_symbol in productions:
            text = transform_production(
                initial_symbol, productions[initial_symbol]) + "\n"

        for non_terminal in sorted(set(productions.keys()) - {initial_symbol}):
            text += transform_production(
                non_terminal, productions[non_terminal]) + "\n"

        self.grammarText.setPlainText(text)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号