diff options
author | Christopher L. Conway <christopherleeconway@gmail.com> | 2010-10-22 22:50:39 +0000 |
---|---|---|
committer | Christopher L. Conway <christopherleeconway@gmail.com> | 2010-10-22 22:50:39 +0000 |
commit | 3870dd8a11c1153e2db24ffe1b384b84129c2df4 (patch) | |
tree | 73524745d29dd32a160867afed4f314049211cef /src/parser/parser_builder.cpp | |
parent | a486cdde94366aa6b4a1f558eecc0130ba25ad5e (diff) |
Using Options in ParserBuilder and InteractiveShell
Diffstat (limited to 'src/parser/parser_builder.cpp')
-rw-r--r-- | src/parser/parser_builder.cpp | 47 |
1 files changed, 38 insertions, 9 deletions
diff --git a/src/parser/parser_builder.cpp b/src/parser/parser_builder.cpp index 31f402df1..348fb6e6d 100644 --- a/src/parser/parser_builder.cpp +++ b/src/parser/parser_builder.cpp @@ -56,15 +56,36 @@ public: } };*/ -ParserBuilder::ParserBuilder(ExprManager& exprManager, const std::string& filename) : - d_inputType(FILE_INPUT), - d_lang(language::input::LANG_AUTO), - d_filename(filename), - d_streamInput(NULL), - d_exprManager(exprManager), - d_checksEnabled(true), - d_strictMode(false), - d_mmap(false) { +ParserBuilder::ParserBuilder(ExprManager& exprManager, const std::string& filename)// : + // d_inputType(FILE_INPUT), + // d_lang(language::input::LANG_AUTO), + : d_filename(filename), + // d_streamInput(NULL), + d_exprManager(exprManager) + // d_checksEnabled(true), + // d_strictMode(false), + // d_mmap(false) +{ + init(exprManager,filename); +} + + ParserBuilder::ParserBuilder(ExprManager& exprManager, const std::string& filename, const Options& options) : + d_filename(filename), + d_exprManager(exprManager) +{ + init(exprManager,filename); + withOptions(options); +} + + void ParserBuilder::init(ExprManager& exprManager, const std::string& filename) { + d_inputType = FILE_INPUT; + d_lang = language::input::LANG_AUTO; + d_filename = filename; + d_streamInput = NULL; + d_exprManager = exprManager; + d_checksEnabled = true; + d_strictMode = false; + d_mmap = false; } Parser *ParserBuilder::build() throw (InputStreamException,AssertionException) { @@ -135,6 +156,14 @@ ParserBuilder& ParserBuilder::withMmap(bool flag) { return *this; } +ParserBuilder& ParserBuilder::withOptions(const Options& options) { + return + withInputLanguage(options.inputLanguage) + .withMmap(options.memoryMap) + .withChecks(options.semanticChecks) + .withStrictMode(options.strictParsing); + } + ParserBuilder& ParserBuilder::withStrictMode(bool flag) { d_strictMode = flag; return *this; |