Beispiel #1
0
 def setUp(self):
     self.grammar = eingabe.CFG()
     self.grammar.rules = {
         "A": {"aBcD", "a"},
         "B": {"aBcD", "a"},
         "C": {"aBcD", "a"},
         "D": {"aBcD", "a"},
         "E": {"aBcD", "a"},
         "F": {"aBcD", "a"},
         "G": {"aBcD", "a"},
         "H": {"aBcD", "a"},
         "I": {"aBcD", "a"},
         "J": {"aBcD", "a"},
         "K": {"aBcD", "a"},
         "L": {"aBcD", "a"},
         "M": {"aBcD", "a"},
         "N": {"aBcD", "a"},
         "O": {"aBcD", "a"},
         "P": {"aBcD", "a"},
         "Q": {"aBcD", "a"},
         "R": {"aBcD", "a"},
         "S": {"aBcD", "a"},
         "T": {"aBcD", "a"},
         "U": {"aBcD", "a"},
         "V": {"aBcD", "a"},
         "W": {"aBcD", "a"},
         "X": {"aBcD", "a"},
         "Y": {"aBcD", "a"},
         "Z": {"aBcD", "a"}
     }
     self.grammar.alphabet = {'a', 'c'}
     self.grammar.variables = set(key for key in self.grammar.rules)
     self.grammar.start = 'S'
     print("grammar:")
     print_grammar(self.grammar.rules)
Beispiel #2
0
 def setUp(self) -> None:
     self.grammar = eingabe.CFG()
     self.grammar.rules = {
         'S': {'ASA', 'aB'},
         'A': {'B', 'S'},
         'B': {'b', r'\E'}
     }
     self.grammar.alphabet = {'a', 'b'}
     self.grammar.variables = set(key for key in self.grammar.rules)
     self.grammar.start = 'S'
     print_grammar(self.grammar.rules)
Beispiel #3
0
 def setUp(self):
     self.grammar = eingabe.CFG()
     self.grammar.rules = {
         'S': {'TU'},
         'T': {'aTb', r'\E'},
         'U': {'R'},
         'R': {'Ucc', r'\E'}
     }
     self.grammar.alphabet = {'a', 'b', 'c'}
     self.grammar.variables = set(key for key in self.grammar.rules)
     self.grammar.start = 'S'
     print_grammar(self.grammar.rules)
Beispiel #4
0
 def setUp(self):
     self.grammar = eingabe.CFG()
     self.grammar.rules = {
         'S': {'aaA'},
         'A': {'BAB', 'B', r'\E'},
         'B': {'bb'}
     }
     self.grammar.alphabet = {'a', 'b'}
     self.grammar.variables = set(key for key in self.grammar.rules)
     self.grammar.start = 'S'
     print("grammar:")
     print_grammar(self.grammar.rules)
Beispiel #5
0
 def setUp(self):
     self.grammar = eingabe.CFG()
     self.grammar.rules = {
         'S': {'LR', r'\E'},
         'L': {'ALLA', 'BLLB', r'\E'},
         'R': {'ARA', 'BRB', r'\E'},
         'A': {'a'},
         'B': {'b'}
     }
     self.grammar.alphabet = {'a', 'b'}
     self.grammar.variables = set(key for key in self.grammar.rules)
     self.grammar.start = 'S'
     print_grammar(self.grammar.rules)
Beispiel #6
0
import subprocess
import eingabe
import cyk
import tabular
import cnf
import cnf_test
import copy

def run_pdflatex(file_name='CYK_Tableau.tex', path='.'):
    return subprocess.call(['pdflatex', file_name], cwd=path)


grammar = eingabe.CFG()
if input("Do you want to import your Grammar? [y/N] ") in ['Y', 'y']:
    eingabe.CFG.file_input(grammar)
else:
    eingabe.CFG.new_grammar(grammar)
    
word = eingabe.new_word()
saveGrammar = copy.deepcopy(grammar.rules)
cnf_test.print_grammar(grammar.rules)
grammar.rules = cnf.cnf(grammar)
print("cnf done")
cnf_test.print_grammar(grammar.rules)
table = cyk.cyk(grammar, word)
tableau = tabular.to_latex(table, word, grammar.start, grammar.rules, saveGrammar)
file = open(file="CYK_Tableau.tex", mode="w")
file.write(tableau)
file.close()
print('\nwritten in CYK_Tableau.tex')
run_pdflatex()