Skip to content

Commit

Permalink
Correcao de cenarios e adicao de testes de integracao, analise sintatica
Browse files Browse the repository at this point in the history
  • Loading branch information
lgsanjos committed Sep 7, 2011
1 parent d10e84f commit 89f74e7
Show file tree
Hide file tree
Showing 15 changed files with 160 additions and 10 deletions.
Empty file removed pom.out.xml
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ public ProducaoSintaticaException(String producao) {
super ("Nao foi possivel validar a producao: " + producao);
}
public ProducaoSintaticaException(String producao, String linha, String coluna) {
super ("Nao foi possivel validar a producao: " + producao +", linha " + linha + " coluna " + coluna);
super ("Nao foi possivel validar a producao: " + producao +", linha: " + linha + " coluna: " + coluna);
}

public ProducaoSintaticaException(String producao, String linha, String coluna, String lexema) {
super ("Nao foi possivel validar a producao: " + producao +", linha " + linha + " coluna " + coluna + ", token " + lexema);
super ("Nao foi possivel validar a producao: " + producao +", linha: " + linha + " coluna: " + coluna + ", token: '" + lexema + "'");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public class ProducaoSintaticaLoggedException extends Exception {

public ProducaoSintaticaLoggedException(String message) {
super(message);
System.out.println(message);
ProducaoSintaticaLoggedException.log.add(message);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,5 +79,9 @@ public boolean possueNosFilhos() {
public int quatidadeNosFilhos(){
return (this.listaDeNosFilhos.size());
}

public String print() {
return "";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public ArvoreSintaticaAbstrataNo validaEGeraProducao() throws ProducaoSintaticaE
try {
guardedCommandList = this.validaEGeraProducaoDadoProducao(ProducoesEnum.guardedCommandList);
} catch (ProducaoSintaticaException e) {
//

}
if (guardedCommandList != null) {
raiz.adicionaNoFilho(guardedCommandList);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,12 @@ public ArvoreSintaticaAbstrataNo validaEGeraProducao() throws ProducaoSintaticaE
boolean isValida;

this.salvarIndiceTokenAtual();
ArvoreSintaticaAbstrataNo guardedCommand;
guardedCommand = this.validaEGeraProducaoDadoProducao(ProducoesEnum.guardedCommand);
ArvoreSintaticaAbstrataNo guardedCommand = null;
try {
guardedCommand = this.validaEGeraProducaoDadoProducao(ProducoesEnum.guardedCommand);
} catch (ProducaoSintaticaException e) {
//
}
if (guardedCommand == null) {
this.recuperarIndiceSalvo();
this.throwProducaoSintaticaException("guardedCommandList");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,71 @@ public void testValidaArquivo_IfStatementComplexo() {
} catch (ProducaoSintaticaException ep) {
fail(ep.getMessage());
}
}
}

public void testValidaArquivo_doComplexo2() {
String source = this.loadResourceNamed("module_doComplexo2.gcl");

this.analisador = this.buildAnaliseSintatica(source);
try {
assertTrue(this.analisador.valida());
} catch (InvalidTokenException et) {
fail(et.getMessage());
} catch (ProducaoSintaticaException ep) {
fail(ep.getMessage());
}
}

public void testValidaArquivo_procAninhadaSimples() {
String source = this.loadResourceNamed("module_procAninhadaSimples.gcl");

this.analisador = this.buildAnaliseSintatica(source);
try {
assertTrue(this.analisador.valida());
} catch (InvalidTokenException et) {
fail(et.getMessage());
} catch (ProducaoSintaticaException ep) {
fail(ep.getMessage());
}
}

public void testValidaArquivo_procAninhadaComplexa() {
String source = this.loadResourceNamed("module_procAninhadaComplexo.gcl");

this.analisador = this.buildAnaliseSintatica(source);
try {
assertTrue(this.analisador.valida());
} catch (InvalidTokenException et) {
fail(et.getMessage());
} catch (ProducaoSintaticaException ep) {
fail(ep.getMessage());
}
}

public void testValidaArquivo_procAninhada_doSimples() {
String source = this.loadResourceNamed("module_procAninhada_doSimples.gcl");

this.analisador = this.buildAnaliseSintatica(source);
try {
assertTrue(this.analisador.valida());
} catch (InvalidTokenException et) {
fail(et.getMessage());
} catch (ProducaoSintaticaException ep) {
fail(ep.getMessage());
}
}

public void testValidaArquivo_procAninhada_doComplexa() {
String source = this.loadResourceNamed("module_procAninhada_doComplexa.gcl");

this.analisador = this.buildAnaliseSintatica(source);
try {
assertTrue(this.analisador.valida());
} catch (InvalidTokenException et) {
fail(et.getMessage());
} catch (ProducaoSintaticaException ep) {
fail(ep.getMessage());
}
}

}
9 changes: 9 additions & 0 deletions src/test/resources/module_doComplexo2.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module doComplexo2
begin
do x#0 -> search(x,A, result);
if result.1 -> write x, ' can be found at ', result.2;
[] ~result.1 -> write x, ' not found';
fi;
read x;
od;
end.
2 changes: 1 addition & 1 deletion src/test/resources/module_doStatement.gcl
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ begin
i := i + 1;
od;

end.
end.
2 changes: 1 addition & 1 deletion src/test/resources/module_doStatementComplexo.gcl
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ begin
fi;
od;
result := [found, where];
end.
end.
28 changes: 28 additions & 0 deletions src/test/resources/module_procAninhadaComplexo.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
module search
private

proc search (val integer target; val elements B; ref [Boolean, integer] result)
integer m;
integer i;
Boolean found;
integer where;
begin
i:= 1;
m := size;
found := false;
do i <= m ->
if B[i] = target ->
found := true;
where := i;
i := m + 1;
[] B[i] # target ->
i := i+1;
fi;
od;
result := [found, where];
end;

begin
skip;
end.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module atribuicaoGuarded

proc procAninhada()
proc search ()
begin
skip;
skip;
Expand Down
25 changes: 25 additions & 0 deletions src/test/resources/module_procAninhada_doComplexa.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
module atribuicaoGuarded

proc search ()
integer m;
integer i;
Boolean found;
integer where;
begin
i:= 1;
m := size;
found := false;
do i <= m ->
if B[i] = target ->
found := true;
where := i;
i := m + 1;
[] B[i] # target ->
i := i+1;
fi;
od;
end;

begin
skip;
end.
14 changes: 14 additions & 0 deletions src/test/resources/module_procAninhada_doSimples.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module atribuicaoGuarded

proc search ()
integer i;
begin
i := 0;
do i < 10 ->
i := i + 1;
od;
end;

begin
skip;
end.
2 changes: 1 addition & 1 deletion src/test/resources/search.gcl
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ private
i := i+1;
fi;
od;
result = [found, where];
result := [found, where];
end;

begin
Expand Down

0 comments on commit 89f74e7

Please sign in to comment.