From 699986d192a90313cb1fdaf1a650247689a13cee Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Fri, 20 May 2011 21:06:05 -0400 Subject: [PATCH] fuzzer: Begin writing main --- src/fuzzer/fuzzer.rs | 70 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 2 deletions(-) diff --git a/src/fuzzer/fuzzer.rs b/src/fuzzer/fuzzer.rs index e071729b3b1e..09872431831e 100644 --- a/src/fuzzer/fuzzer.rs +++ b/src/fuzzer/fuzzer.rs @@ -1,3 +1,69 @@ +import std::fs; +import std::getopts; +import std::getopts::optopt; +import std::getopts::opt_present; +import std::getopts::opt_str; +import std::io; +import std::vec; + +import rustc::front::ast; + +type src_gen = iter() -> str; + +iter dir_src_gen(str dir) -> str { +} + +fn usage(str binary) { + io::stdout().write_line("usage"); +} + +type session = rec(str srcdir); + +fn make_session(vec[str] args) -> session { + // Directory of rust source files to use as input + auto opt_src = "src"; + + auto binary = vec::shift[str](args); + auto opts = [optopt(opt_src)]; + auto match; + alt (getopts::getopts(args, opts)) { + case (getopts::failure(?f)) { + log_err #fmt("error: %s", getopts::fail_str(f)); + fail; + } + case (getopts::success(?m)) { + match = m; + } + }; + + if (!opt_present(match, opt_src)) { + usage(binary); + fail; + } + + auto srcdir = opt_str(match, opt_src); + + ret rec(srcdir = srcdir); +} + +fn log_session(session sess) { + log #fmt("srcdir: %s", sess.srcdir); +} + +fn run_session(session sess) { +} + fn main(vec[str] args) { - rustc::driver::rustc::main(args); -} \ No newline at end of file + auto sess = make_session(args); + log_session(sess); + run_session(sess); +} + +// Local Variables: +// mode: rust; +// fill-column: 78; +// indent-tabs-mode: nil +// c-basic-offset: 4 +// buffer-file-coding-system: utf-8-unix +// compile-command: "make -k -C $RBUILD 2>&1 | sed -e 's/\\/x\\//x:\\//g'"; +// End: