diff options
Diffstat (limited to 'src/parser/parser_builder.cpp')
-rw-r--r-- | src/parser/parser_builder.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/parser/parser_builder.cpp b/src/parser/parser_builder.cpp index e1e4053ac..684a495b6 100644 --- a/src/parser/parser_builder.cpp +++ b/src/parser/parser_builder.cpp @@ -54,6 +54,7 @@ void ParserBuilder::init(ExprManager* exprManager, d_exprManager = exprManager; d_checksEnabled = true; d_strictMode = false; + d_canIncludeFile = true; d_mmap = false; d_parseOnly = false; } @@ -106,6 +107,12 @@ Parser* ParserBuilder::build() parser->disableChecks(); } + if( d_canIncludeFile ) { + parser->allowIncludeFile(); + } else { + parser->disallowIncludeFile(); + } + return parser; } @@ -151,7 +158,8 @@ ParserBuilder& ParserBuilder::withOptions(const Options& options) { .withMmap(options[options::memoryMap]) .withChecks(options[options::semanticChecks]) .withStrictMode(options[options::strictParsing]) - .withParseOnly(options[options::parseOnly]); + .withParseOnly(options[options::parseOnly]) + .withIncludeFile(options[options::canIncludeFile]); } ParserBuilder& ParserBuilder::withStrictMode(bool flag) { @@ -159,6 +167,11 @@ ParserBuilder& ParserBuilder::withStrictMode(bool flag) { return *this; } +ParserBuilder& ParserBuilder::withIncludeFile(bool flag) { + d_canIncludeFile = flag; + return *this; +} + ParserBuilder& ParserBuilder::withStreamInput(std::istream& input) { d_inputType = STREAM_INPUT; d_streamInput = &input; |