pub mod lexer;
use lexer::OwningTokenizer;
use regex::Regex;
use std::path::PathBuf;
pub fn splice_lines<S: AsRef<str>>(input: S) -> String {
let line_regex = Regex::new("\r\n|\n\r|\r").unwrap();
line_regex.replace_all(input.as_ref(), "\n").into()
}
#[cfg(test)]
mod splice_tests {
use crate::splice_lines;
#[test]
fn nothing_to_do() {
assert_eq!(splice_lines("a\nb"), "a\nb")
}
#[test]
fn windows_line_ending() {
assert_eq!(splice_lines("a\r\nb"), "a\nb")
}
#[test]
fn reverse_windows_line_ending() {
assert_eq!(splice_lines("a\n\rb"), "a\nb")
}
#[test]
fn longest_sequence_first() {
assert_eq!(splice_lines("a\r\n\rb"), "a\n\nb")
}
#[test]
fn non_greedy() {
assert_eq!(splice_lines("a\n\r\nb"), "a\n\nb")
}
}
pub fn preprocess(_input: String) -> String {
"".into()
}
struct TokenStream {
path: PathBuf,
tokenizer: OwningTokenizer,
}