summaryrefslogtreecommitdiff
path: root/src/parser/parser_builder.cpp
diff options
context:
space:
mode:
authorChristopher L. Conway <christopherleeconway@gmail.com>2010-10-22 22:50:39 +0000
committerChristopher L. Conway <christopherleeconway@gmail.com>2010-10-22 22:50:39 +0000
commit3870dd8a11c1153e2db24ffe1b384b84129c2df4 (patch)
tree73524745d29dd32a160867afed4f314049211cef /src/parser/parser_builder.cpp
parenta486cdde94366aa6b4a1f558eecc0130ba25ad5e (diff)
Using Options in ParserBuilder and InteractiveShell
Diffstat (limited to 'src/parser/parser_builder.cpp')
-rw-r--r--src/parser/parser_builder.cpp47
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;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback