AWK 记录处理器本地候选
///|
test "literal separator retains empty columns" {
assert_eq(@awk.run("{ print NF, $2, $3 }", "a;;7", separator=";"), "3 7\n")
assert_eq(@awk.run("{print NF,$2}", "abc", separator=""), "3 b\n")
}pub(all) enum IORequest {
OpenReader(String, Bool)
ReadReader(String)
OpenWriter(String, String)
WriteWriter(String, String)
CloseStream(String)
FlushStream(String)
Execute(String)
}pub(all) enum InputRequest {
Open(String)
Read
Close
}pub struct Session {
// private fields
}fn new_session(program : String, separator? : String, input_mode? : String, output_mode? : String, variables? : Map[String, String], environment? : Map[String, String], arguments? : Array[String], step_limit? : Int, clock_seconds? : Double, io? : (IORequest) -> IOReply?, input? : (InputRequest) -> InputReply?, output_sink? : (String) -> String??) -> Session raise ParseErrorfn run(program : String, input : String, separator? : String, input_mode? : String, output_mode? : String) -> String raise ParseErrorfn run_with_status(program : String, input : String, separator? : String, input_mode? : String, output_mode? : String, step_limit? : Int, clock_seconds? : Double) -> RunResult raise ParseError