public void testUmUnicoValorInteiro() { Token tokenDois = new Token(GCLTokenTypes.NUMBER, "2"); this.pilhaDeToken.add(tokenDois); ProducoesFactory.setEstado(this.pilhaDeToken); this.producao = ProducoesFactory.getProducao(ProducoesEnum.expression); assertEquals( this.producao.getClass().getName(), "analise.sintatica.producoes.RegrasProducaoExpression"); try { this.raiz = this.producao.validaEGeraProducao(); } catch (ProducaoSintaticaException e) { fail(e.getMessage()); } assertNotNull(this.raiz); assertEquals(this.raiz.getNome(), "expression"); assertNull(this.raiz.getToken()); assertEquals(this.raiz.possueNosFilhos(), true); assertEquals(this.raiz.getListaDeNos().size(), 1); ArvoreSintaticaAbstrataNo relationalExpression; relationalExpression = this.raiz.getListaDeNos().getFirst(); assertNotNull(relationalExpression); assertEquals(relationalExpression.getNome(), "relationalExpression"); assertNull(relationalExpression.getToken()); assertEquals(relationalExpression.possueNosFilhos(), true); assertEquals(relationalExpression.getListaDeNos().size(), 1); int i = 0; assertEquals(relationalExpression.getListaDeNos().get(i).getNome(), "simpleExpression"); }
@Override public void testCasoIdeal() { Token tokenDois = new Token(GCLTokenTypes.NUMBER, "2"); Token tokenMaiorIgual = new Token(GCLTokenTypes.SYMBOL, ">="); Token tokenUm = new Token(GCLTokenTypes.NUMBER, "1"); this.pilhaDeToken.add(tokenDois); this.pilhaDeToken.add(tokenMaiorIgual); this.pilhaDeToken.add(tokenUm); ProducoesFactory.setEstado(this.pilhaDeToken); this.producao = ProducoesFactory.getProducao(ProducoesEnum.expressionList); assertEquals( this.producao.getClass().getName(), "analise.sintatica.producoes.RegrasProducaoExpressionList"); try { this.raiz = this.producao.validaEGeraProducao(); } catch (ProducaoSintaticaException e) { fail(e.getMessage()); } assertNotNull(this.raiz); assertEquals(this.raiz.getNome(), "expressionList"); assertNull(this.raiz.getToken()); assertEquals(this.raiz.possueNosFilhos(), true); assertEquals(this.raiz.getListaDeNos().size(), 1); ArvoreSintaticaAbstrataNo expression; expression = this.raiz.getListaDeNos().getFirst(); assertNotNull(expression); assertEquals(expression.getNome(), "expression"); assertNull(expression.getToken()); assertEquals(expression.possueNosFilhos(), true); assertEquals(expression.getListaDeNos().size(), 1); }
public void testCasoComVariasExpressions() { Token tokenDois = new Token(GCLTokenTypes.NUMBER, "2"); Token tokenMaiorIgual = new Token(GCLTokenTypes.SYMBOL, ">="); Token tokenUm = new Token(GCLTokenTypes.NUMBER, "1"); Token tokenVirgula = new Token(GCLTokenTypes.SYMBOL, ","); Token tokenTres = new Token(GCLTokenTypes.NUMBER, "3"); Token tokenMenorIgual = new Token(GCLTokenTypes.SYMBOL, "<="); Token tokenZero = new Token(GCLTokenTypes.NUMBER, "0"); this.pilhaDeToken.add(tokenDois); this.pilhaDeToken.add(tokenMaiorIgual); this.pilhaDeToken.add(tokenUm); this.pilhaDeToken.add(tokenVirgula); this.pilhaDeToken.add(tokenTres); this.pilhaDeToken.add(tokenMenorIgual); this.pilhaDeToken.add(tokenZero); ProducoesFactory.setEstado(this.pilhaDeToken); this.producao = ProducoesFactory.getProducao(ProducoesEnum.expressionList); assertEquals( this.producao.getClass().getName(), "analise.sintatica.producoes.RegrasProducaoExpressionList"); try { this.raiz = this.producao.validaEGeraProducao(); } catch (ProducaoSintaticaException e) { fail(e.getMessage()); } assertNotNull(this.raiz); assertEquals(this.raiz.getNome(), "expressionList"); assertNull(this.raiz.getToken()); assertEquals(this.raiz.possueNosFilhos(), true); assertEquals(this.raiz.getListaDeNos().size(), 3); int i = 0; ArvoreSintaticaAbstrataNo expression = this.raiz.getListaDeNos().get(i); assertNotNull(expression); assertEquals(expression.getNome(), "expression"); assertNull(expression.getToken()); assertEquals(expression.possueNosFilhos(), true); assertEquals(expression.getListaDeNos().size(), 1); i++; assertEquals(this.raiz.getListaDeNos().get(i).getToken().getValue(), tokenVirgula.getValue()); assertEquals( this.raiz.getListaDeNos().get(i).getToken().getTokenType(), tokenVirgula.getTokenType()); i++; expression = this.raiz.getListaDeNos().get(i); assertNotNull(expression); assertEquals(expression.getNome(), "expression"); assertNull(expression.getToken()); assertEquals(expression.possueNosFilhos(), true); assertEquals(expression.getListaDeNos().size(), 1); }
public void testValorEmArray() { Token tokenId = new Token(GCLTokenTypes.IDENTIFIER, "B"); Token tokenAbre = new Token(GCLTokenTypes.SYMBOL, "["); Token tokenUm = new Token(GCLTokenTypes.NUMBER, "1"); Token tokenFecha = new Token(GCLTokenTypes.SYMBOL, "]"); Token tokenIgual = new Token(GCLTokenTypes.SYMBOL, "="); Token tokenDois = new Token(GCLTokenTypes.NUMBER, "2"); this.pilhaDeToken.add(tokenId); this.pilhaDeToken.add(tokenAbre); this.pilhaDeToken.add(tokenUm); this.pilhaDeToken.add(tokenFecha); this.pilhaDeToken.add(tokenIgual); this.pilhaDeToken.add(tokenDois); ProducoesFactory.setEstado(this.pilhaDeToken); this.producao = ProducoesFactory.getProducao(ProducoesEnum.expression); assertEquals( this.producao.getClass().getName(), "analise.sintatica.producoes.RegrasProducaoExpression"); try { this.raiz = this.producao.validaEGeraProducao(); } catch (ProducaoSintaticaException e) { fail(e.getMessage()); } assertNotNull(this.raiz); assertEquals(this.raiz.getNome(), "expression"); assertNull(this.raiz.getToken()); assertEquals(this.raiz.possueNosFilhos(), true); assertEquals(this.raiz.getListaDeNos().size(), 1); ArvoreSintaticaAbstrataNo relationalExpression; relationalExpression = this.raiz.getListaDeNos().getFirst(); assertNotNull(relationalExpression); assertEquals(relationalExpression.getNome(), "relationalExpression"); assertNull(relationalExpression.getToken()); assertEquals(relationalExpression.possueNosFilhos(), true); assertEquals(relationalExpression.getListaDeNos().size(), 3); int i = 0; assertEquals(relationalExpression.getListaDeNos().get(i).getNome(), "simpleExpression"); }
public void testRelationalOperatorFaltandoUmaSimpleExpression() { Token tokenDois = new Token(GCLTokenTypes.NUMBER, "2"); Token tokenMaiorIgual = new Token(GCLTokenTypes.SYMBOL, ">="); this.pilhaDeToken.add(tokenDois); this.pilhaDeToken.add(tokenMaiorIgual); ProducoesFactory.setEstado(this.pilhaDeToken); this.producao = ProducoesFactory.getProducao(ProducoesEnum.expression); assertEquals( this.producao.getClass().getName(), "analise.sintatica.producoes.RegrasProducaoExpression"); try { this.raiz = this.producao.validaEGeraProducao(); fail("Deveria ter disparado excecao ProducaoSintaticaException"); } catch (ProducaoSintaticaException e) { assertNull(this.raiz); } }
public void testCasoComUmaExpressionEUmaVirgula() { Token tokenDois = new Token(GCLTokenTypes.NUMBER, "2"); Token tokenMaiorIgual = new Token(GCLTokenTypes.SYMBOL, ">="); Token tokenUm = new Token(GCLTokenTypes.NUMBER, "1"); Token tokenVirgula = new Token(GCLTokenTypes.SYMBOL, ","); this.pilhaDeToken.add(tokenDois); this.pilhaDeToken.add(tokenMaiorIgual); this.pilhaDeToken.add(tokenUm); this.pilhaDeToken.add(tokenVirgula); ProducoesFactory.setEstado(this.pilhaDeToken); this.producao = ProducoesFactory.getProducao(ProducoesEnum.expressionList); assertEquals( this.producao.getClass().getName(), "analise.sintatica.producoes.RegrasProducaoExpressionList"); try { this.raiz = this.producao.validaEGeraProducao(); fail("Deveria ter dado excecao"); } catch (ProducaoSintaticaException e) { assertNull(this.raiz); } }
public void testExpressaoCompletaComUmaBooleanOperator() { Token tokenDois = new Token(GCLTokenTypes.NUMBER, "2"); Token tokenMaiorIgual = new Token(GCLTokenTypes.SYMBOL, ">="); Token tokenUm = new Token(GCLTokenTypes.NUMBER, "1"); Token tokenOr = new Token(GCLTokenTypes.SYMBOL, "|"); Token tokenFalse = new Token(GCLTokenTypes.KEYWORD, "false"); this.pilhaDeToken.add(tokenDois); this.pilhaDeToken.add(tokenMaiorIgual); this.pilhaDeToken.add(tokenUm); this.pilhaDeToken.add(tokenOr); this.pilhaDeToken.add(tokenFalse); ProducoesFactory.setEstado(this.pilhaDeToken); this.producao = ProducoesFactory.getProducao(ProducoesEnum.expression); assertEquals( this.producao.getClass().getName(), "analise.sintatica.producoes.RegrasProducaoExpression"); try { this.raiz = this.producao.validaEGeraProducao(); } catch (ProducaoSintaticaException e) { fail(e.getMessage()); } assertNotNull(this.raiz); assertEquals(this.raiz.getNome(), "expression"); assertNull(this.raiz.getToken()); assertEquals(this.raiz.possueNosFilhos(), true); assertEquals(this.raiz.getListaDeNos().size(), 3); int j = 0; ArvoreSintaticaAbstrataNo relationalExpression; relationalExpression = this.raiz.getListaDeNos().get(j); assertNotNull(relationalExpression); assertEquals(relationalExpression.getNome(), "relationalExpression"); assertNull(relationalExpression.getToken()); assertEquals(relationalExpression.possueNosFilhos(), true); assertEquals(relationalExpression.getListaDeNos().size(), 3); int i = 0; assertEquals(relationalExpression.getListaDeNos().get(i).getNome(), "simpleExpression"); i++; assertEquals(relationalExpression.getListaDeNos().get(i).getNome(), "relationalOperator"); i++; assertEquals(relationalExpression.getListaDeNos().get(i).getNome(), "simpleExpression"); assertNotNull(this.raiz); j++; ArvoreSintaticaAbstrataNo booleanOperator; booleanOperator = this.raiz.getListaDeNos().get(j); assertNotNull(booleanOperator); assertEquals(booleanOperator.getNome(), "booleanOperator"); assertNull(booleanOperator.getToken()); assertEquals(booleanOperator.possueNosFilhos(), true); assertEquals(booleanOperator.getListaDeNos().size(), 1); j++; ArvoreSintaticaAbstrataNo relationalExpression2; relationalExpression2 = this.raiz.getListaDeNos().get(j); assertNotNull(relationalExpression2); assertEquals(relationalExpression2.getNome(), "relationalExpression"); assertNull(relationalExpression2.getToken()); assertEquals(relationalExpression2.possueNosFilhos(), true); assertEquals(relationalExpression2.getListaDeNos().size(), 1); }