def testSabeQuandoNaoDerivaEpsilon(self): self.assertEqual(set(), construirGLCExpAritmeticaComRecEsquerdaDireta().obterNaoTerminaisQueDerivamEpsilon()) self.assertEqual(set(), construirGLCComRecEsquerdaIndireta().obterNaoTerminaisQueDerivamEpsilon()) self.assertEqual(set(), construirGLCQueNaoProduzEpsilon().obterNaoTerminaisQueDerivamEpsilon())
def testSabeSePossuiRecursaoAEsquerdaIndireta(self): self.assertTrue(construirGLCComRecEsquerdaIndireta().possuiRecursaoAEsquerda())
def testDadaUmaGLCComRecursaoAEsquerdaIndiretaPodeRetornarUmaGLCSemRecursaoAEsquerda(self): glc_nok = construirGLCComRecEsquerdaIndireta() self.assertTrue(glc_nok.possuiRecursaoAEsquerda()) glc_nok = util.remover_recursao_esquerda_glc(glc_nok) self.assertFalse(glc_nok.possuiRecursaoAEsquerda())