示例#1
0
def test1():
    rules = {'S': ['AC', 'B'], 'A': ['a'], 'C': ['c', 'BC'], 'E': ['aA', 'e']}
    c = CFG(rules)
    c.start = 'S'
    c.reduce()
    c.print_cfg()
    """
示例#2
0
def test5():
    rules = {'S': ['AB', 'aS'], 'A': ['aAA', 'ε'], 'B': ['bBB', 'ε']}
    c = CFG(rules)
    c.start = 'S'
    c.elim_null()
    c.print_cfg()
    """
示例#3
0
def test9():
    rules = {'S': ['CA', 'BB'], 'B': ['b', 'SB'], 'C': ['b'], 'A': ['a']}
    c = CFG(rules)
    c.start = 'S'
    c.convert_to_gnf()
    c.print_cfg()
    """
示例#4
0
def test8():
    rules = {'S': ['aB', 'a'], 'B': ['Ba', 'b']}
    c = CFG(rules)
    c.start = 'S'
    c.convert_to_cnf()
    c.print_cfg()
    """
示例#5
0
def test7():
    rules = {'S': ['aXbX'], 'X': ['aY', 'bY', 'ε'], 'Y': ['X', 'c']}
    c = CFG(rules)
    c.start = 'S'
    c.convert_to_cnf()
    c.print_cfg()
    """
示例#6
0
def test6():
    rules = {'S': ['ABCd'], 'A': ['BC'], 'B': ['bB', 'ε'], 'C': ['cC', 'ε']}
    c = CFG(rules)
    c.start = 'S'
    c.elim_null()
    c.print_cfg()
    """
示例#7
0
def test3():
    rules = {
        'S': ['Aa', 'B', 'c'],
        'B': ['A', 'bb', 'aD'],
        'A': ['a', 'bc', 'B'],
        'D': ['d']
    }
    c = CFG(rules)
    c.start = 'S'
    c.elim_unit()
    c.print_cfg()
    """
示例#8
0
def test2():
    rules = {
        'T': ['aaB', 'abA', 'aaT'],
        'A': ['aA'],
        'B': ['ab', 'b'],
        'C': ['ad']
    }
    c = CFG(rules)
    c.start = 'T'
    c.reduce()
    c.print_cfg()
    """
示例#9
0
def test4():
    rules = {
        'S': ['XY'],
        'X': ['a'],
        'Y': ['Z', 'b'],
        'Z': ['M'],
        'M': ['N'],
        'N': ['a']
    }
    c = CFG(rules)
    c.start = 'S'
    c.elim_unit()
    c.print_cfg()
    """