Source code for fosf.parsers

#!/usr/bin/env python3
"""
This module handles parsing of (fuzzy) taxonomies, OSF terms, OSF clauses and OSF theories.
"""

import networkx as nx

from fosf.parsers.base import BaseOSFParser
from fosf.parsers.clause import OsfConstraintParser, NormalizationParser
from fosf.parsers.taxonomy import GraphParser, TaxonomyParser
from fosf.parsers.term import OsfTermParser, UnificationParser
from fosf.parsers.theory import OsfTheoryParser
from fosf.syntax.base import Tag
from fosf.syntax.constraints import Clause
from fosf.syntax.taxonomy import SortTaxonomy
from fosf.syntax.terms import Term
from fosf.syntax.theory import OsfTheory


[docs] def parse_graph(string: str) -> nx.DiGraph: return GraphParser().parse(string)
[docs] def parse_taxonomy(string: str) -> SortTaxonomy: return TaxonomyParser().parse(string)
# TODO add overloads
[docs] def parse_term(string: str, default_tag="X", create_using=None) -> Term: return OsfTermParser().parse(string, default_tag, create_using)
[docs] def parse_clause(string: str, create_using=None, root: Tag=None) -> Clause: return OsfConstraintParser().parse(string, create_using, root)
[docs] def parse_theory(string: str, ensure_closed=False) -> OsfTheory: return OsfTheoryParser().parse(string, ensure_closed)