Exemplo n.º 1
0
        return set()

    def _infer(self, expr, expected_type):
        sorts = self.signature.sorts
        r = expr.root
        if expected_type not in [' ', '', '?'
                                 ] and not expr.subtrees and r not in sorts:
            sorts[r] = [((), expected_type)]


if __name__ == '__main__':
    sample_decls = """
        x : V*V -> []
        """

    from logic.fol.syntax.parser import FolFormulaParser
    L = FolFormulaParser()
    FolFormula.INFIXES += [':']

    decls = [
        L * line for line in (x.strip() for x in sample_decls.splitlines())
        if line
    ]

    td = TypeDeclarations()

    for phi in decls:
        print u'§ ', phi

    print td.read_from(decls)
Exemplo n.º 2
0
 def _mkparser(cls):
     from logic.fol.syntax.parser import LexerRules, FolFormulaParser
     defops = [(":=", 2, LexerRules.opAssoc.RIGHT)]
     return FolFormulaParser(operators=FolFormulaParser.OPERATORS +
                             defops)