Skip to content

Commit dbf22d6

Browse files
committed
cargo fmt e test para PR
1 parent 0ff60a3 commit dbf22d6

4 files changed

Lines changed: 373 additions & 173 deletions

File tree

src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1+
pub mod environment;
2+
pub mod interpreter;
13
pub mod ir;
24
pub mod parser;
3-
pub mod interpreter;
4-
pub mod environment;
5-
pub mod stdlib;
5+
pub mod stdlib;

src/main.rs

Lines changed: 45 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -14,48 +14,53 @@ pub mod environment;
1414
pub mod interpreter;
1515
pub mod ir;
1616
pub mod parser;
17-
pub mod type_checker;
1817
pub mod stdlib;
18+
pub mod type_checker;
1919

2020
fn main() {
2121
println!("Hello, world!");
22-
22+
2323
// Testes da tabela estática de metabuiltins
24-
test_metabuiltins_static_table();
25-
24+
//test_metabuiltins_static_table();
25+
2626
// Teste interativo da função input
27-
test_metabuiltins_input_interativo();
27+
//test_metabuiltins_input_interativo();
2828
}
2929

30+
/*
3031
fn test_metabuiltins_static_table() {
3132
println!("\n=== Testando Tabela Estática de Metabuiltins ===");
32-
33+
3334
// Teste 1: Verificar se a tabela estática está disponível
3435
println!("1. Verificando disponibilidade da tabela estática...");
3536
let table = stdlib::standard_library::get_metabuiltins_table();
3637
println!(" ✓ Tabela estática criada com sucesso");
3738
println!(" ✓ Número de funções na tabela: {}", table.len());
38-
39+
3940
// Teste 2: Verificar se as funções esperadas estão presentes
4041
println!("\n2. Verificando funções na tabela...");
4142
if table.contains_key("input") {
4243
println!(" ✓ Função 'input' encontrada na tabela");
4344
} else {
4445
println!(" ✗ Função 'input' NÃO encontrada na tabela");
4546
}
46-
47+
4748
if table.contains_key("print") {
4849
println!(" ✓ Função 'print' encontrada na tabela");
4950
} else {
5051
println!(" ✗ Função 'print' NÃO encontrada na tabela");
5152
}
52-
53+
5354
// Teste 3: Verificar se as funções são callable
5455
println!("\n3. Testando se as funções são executáveis...");
5556
if let Some(print_func) = table.get("print") {
5657
let mut env = environment::environment::Environment::new();
57-
env.map_variable("value".to_string(), false, ir::ast::Expression::CString("Teste da tabela estática!".to_string()));
58-
58+
env.map_variable(
59+
"value".to_string(),
60+
false,
61+
ir::ast::Expression::CString("Teste da tabela estática!".to_string()),
62+
);
63+
5964
let result = print_func(&mut env);
6065
match result {
6166
ir::ast::Statement::Return(_) => {
@@ -68,59 +73,63 @@ fn test_metabuiltins_static_table() {
6873
} else {
6974
println!(" ✗ Função 'print' não encontrada para teste");
7075
}
71-
76+
7277
// Teste 4: Verificar se a tabela é realmente estática (mesma referência)
7378
println!("\n4. Verificando se a tabela é realmente estática...");
7479
let table1 = stdlib::standard_library::get_metabuiltins_table();
7580
let table2 = stdlib::standard_library::get_metabuiltins_table();
76-
81+
7782
if std::ptr::eq(table1, table2) {
7883
println!(" ✓ Tabela é realmente estática (mesma referência)");
7984
} else {
8085
println!(" ✗ Tabela não é estática (referências diferentes)");
8186
}
82-
87+
8388
// Teste 5: Listar todas as funções disponíveis
8489
println!("\n5. Listando todas as funções disponíveis:");
8590
for (name, _) in table.iter() {
8691
println!(" - {}", name);
8792
}
88-
93+
8994
// Teste 6: Testar múltiplas chamadas da tabela
9095
println!("\n6. Testando múltiplas chamadas da tabela...");
9196
for i in 1..=3 {
9297
let table_call = stdlib::standard_library::get_metabuiltins_table();
9398
println!(" Chamada {}: {} funções encontradas", i, table_call.len());
9499
}
95-
100+
96101
// Teste 7: Testar função print com diferentes tipos
97102
println!("\n7. Testando função print com diferentes tipos...");
98103
if let Some(print_func) = table.get("print") {
99104
let mut env = environment::environment::Environment::new();
100-
105+
101106
// Teste com string
102-
env.map_variable("value".to_string(), false, ir::ast::Expression::CString("String test".to_string()));
107+
env.map_variable(
108+
"value".to_string(),
109+
false,
110+
ir::ast::Expression::CString("String test".to_string()),
111+
);
103112
let _ = print_func(&mut env);
104-
113+
105114
// Teste com inteiro
106115
env.map_variable("value".to_string(), false, ir::ast::Expression::CInt(42));
107116
let _ = print_func(&mut env);
108-
117+
109118
// Teste com real
110119
env.map_variable("value".to_string(), false, ir::ast::Expression::CReal(3.14));
111120
let _ = print_func(&mut env);
112-
121+
113122
println!(" ✓ Função 'print' testada com diferentes tipos");
114123
}
115-
124+
116125
// Teste 8: Verificar que funções inexistentes não são encontradas
117126
println!("\n8. Verificando funções inexistentes...");
118127
if table.get("funcao_inexistente").is_none() {
119128
println!(" ✓ Função inexistente corretamente não encontrada");
120129
} else {
121130
println!(" ✗ Função inexistente foi encontrada (erro)");
122131
}
123-
132+
124133
println!("\n=== Testes da Tabela Estática Concluídos ===");
125134
}
126135
@@ -131,7 +140,11 @@ fn test_metabuiltins_input_interativo() {
131140
if let Some(input_func) = table.get("input") {
132141
let mut env = environment::environment::Environment::new();
133142
// Definir um prompt customizado
134-
env.map_variable("prompt".to_string(), false, ir::ast::Expression::CString("Digite algo: ".to_string()));
143+
env.map_variable(
144+
"prompt".to_string(),
145+
false,
146+
ir::ast::Expression::CString("Digite algo: ".to_string()),
147+
);
135148
136149
// Chama a função input_builtin (vai esperar o usuário digitar algo)
137150
let result = input_func(&mut env);
@@ -141,12 +154,16 @@ fn test_metabuiltins_input_interativo() {
141154
// Extrair a string do CString
142155
if let ir::ast::Expression::CString(input_value) = *expr {
143156
println!(" ✓ Valor digitado: '{}'", input_value);
144-
157+
145158
// Agora usar a função print da tabela para mostrar o resultado
146159
if let Some(print_func) = table.get("print") {
147160
let mut print_env = environment::environment::Environment::new();
148-
print_env.map_variable("value".to_string(), false, ir::ast::Expression::CString(format!("Você digitou: {}", input_value)));
149-
161+
print_env.map_variable(
162+
"value".to_string(),
163+
false,
164+
ir::ast::Expression::CString(format!("Você digitou: {}", input_value)),
165+
);
166+
150167
println!(" Usando função print da tabela:");
151168
let _ = print_func(&mut print_env);
152169
}
@@ -162,6 +179,7 @@ fn test_metabuiltins_input_interativo() {
162179
println!(" ✗ Função 'input' não encontrada na tabela");
163180
}
164181
}
182+
*/
165183

166184
/*
167185
fn run_test(name: &str, program: &str) -> String {

src/stdlib/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pub mod standard_library;
1+
pub mod standard_library;

0 commit comments

Comments
 (0)