Implement rule to remove comments
Run the tests for a working verification of xtcl. / build (ubuntu-20.04) (push) Successful in 41s
Details
Run the tests for a working verification of xtcl. / build (ubuntu-20.04) (push) Successful in 41s
Details
This commit is contained in:
parent
47bf17cb0b
commit
20330f746f
23
src/tcl.rs
23
src/tcl.rs
|
@ -67,3 +67,26 @@ pub fn words(command: &str) -> Vec<String> {
|
||||||
|
|
||||||
return words;
|
return words;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @name comments
|
||||||
|
// @return String
|
||||||
|
// @brief Remove all comments.
|
||||||
|
// @param tcl_script: &str
|
||||||
|
pub fn comments(tcl_script: &str) -> String {
|
||||||
|
let mut toggle_comment: bool = false;
|
||||||
|
let mut cleaned_tcl_script: String = String::new();
|
||||||
|
for character in tcl_script.chars() {
|
||||||
|
if toggle_comment {
|
||||||
|
if character == '\n' {
|
||||||
|
toggle_comment = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cleaned_tcl_script.push(character);
|
||||||
|
if character == ';' || character == '\n' {
|
||||||
|
toggle_comment = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return cleaned_tcl_script;
|
||||||
|
}
|
||||||
|
|
|
@ -73,9 +73,9 @@ fn test_remove_comments() {
|
||||||
let testcase_2: &str = ";#replace_this\n";
|
let testcase_2: &str = ";#replace_this\n";
|
||||||
let verify_1: &str = "test#noreplacement";
|
let verify_1: &str = "test#noreplacement";
|
||||||
let verify_2: &str = ";";
|
let verify_2: &str = ";";
|
||||||
let case_1: &str = comments(testcase_1).as_str();
|
let case_1: String = comments(testcase_1);
|
||||||
let case_2: &str = comments(testcase_2).as_str();
|
let case_2: String = comments(testcase_2);
|
||||||
|
|
||||||
assert_eq!(verify_1, case_1);
|
assert_eq!(verify_1, case_1.as_str());
|
||||||
assert_eq!(verify_2, case_2);
|
assert_eq!(verify_2, case_2.as_str());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue