Added CNF (like BNF, but only two leaves: can be reduced from general BNF) and semiring for the nonterminal langauge set X