| 
															
																@@ -322,12 +322,26 @@ export class SemanticAnalyser { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																       this.checkCommands(type, cmd.commands, optional); 
															 | 
															
															 | 
															
																       this.checkCommands(type, cmd.commands, optional); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																       return false; 
															 | 
															
															 | 
															
																       return false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } else if (cmd instanceof For) { 
															 | 
															
															 | 
															
																     } else if (cmd instanceof For) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-      this.checkCommand(type, cmd.assignment, optional); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-      const resultType = this.evaluateExpressionType(cmd.condition); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-      if (!resultType.isCompatible(Types.BOOLEAN)) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        throw ProcessorErrorFactory.for_condition_type_full(cmd.condition.toString(), cmd.sourceInfo); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+      const var_type = this.evaluateExpressionType(cmd.for_id); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+      if (!var_type.isCompatible(Types.INTEGER)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        // TODO better error message 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        throw new Error("A variavel do comando repita_para deve ser do tipo inteiro"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+      } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+      const from_type = this.evaluateExpressionType(cmd.for_from); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+      if (!from_type.isCompatible(Types.INTEGER)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        // TODO better error message 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        throw new Error("o paramentro 'de' do comando repita_para deve ser do tipo inteiro"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+      } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+      const to_type = this.evaluateExpressionType(cmd.for_to); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+      if (!to_type.isCompatible(Types.INTEGER)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        // TODO better error message 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        throw new Error("o paramentro 'ate' do comando repita_para deve ser do tipo inteiro"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+      } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+      const pass_type = this.evaluateExpressionType(cmd.for_pass); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+      if (!pass_type.isCompatible(Types.INTEGER)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        // TODO better error message 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        throw new Error("o paramentro 'passo' do comando repita_para deve ser do tipo inteiro"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																       } 
															 | 
															
															 | 
															
																       } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-      this.checkCommand(type, cmd.increment, optional); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																       this.checkCommands(type, cmd.commands, optional); 
															 | 
															
															 | 
															
																       this.checkCommands(type, cmd.commands, optional); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																       return false; 
															 | 
															
															 | 
															
																       return false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } else if (cmd instanceof Switch) { 
															 | 
															
															 | 
															
																     } else if (cmd instanceof Switch) { 
															 |