Этот фрагмент:
Код: Выделить всё
fn parse_function_def (input: &str) -> Vec {
let mut iter = input.chars().peekable();
let mut func_def:Vec = Vec::new(); // String to store the entire class definition
let mut level = 0;
let mut temp_str = String::new();
let mut return_type = String::new();
let mut func_name = String::new();
let mut func_args = String::new();
let mut whole_func = String::new();
while let Some(c)= iter.next() {
temp_str.push(c);
if c == '(' {
return_type = temp_str.clone();
temp_str.clear();
}
if c == ')' {
func_name = temp_str.clone();
temp_str.clear();
}
if c == '{' {
func_args = temp_str.clone();
temp_str.clear();
}
if c == '}' {
// func_def.push(return_type.clone());
// func_def.push(func_name.clone());
// func_def.push(func_args.clone());
whole_func.push_str(&return_type);
whole_func.push_str(&func_name);
whole_func.push_str(&func_args);
func_def.push(whole_func.clone());
level += 1;
break;
}
}
return func_def;
}
fn main() {
let input = "for(int i = 0; i < 10; i++) {
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79105014/parsing-c-function-definition[/url]