#ifndef LIBWCCL_PARSER_PARSINGSCOPE_H #define LIBWCCL_PARSER_PARSINGSCOPE_H #include <libwccl/variables.h> #include <libwccl/lexicon/lexicons.h> #include <libwccl/wcclfile.h> namespace Wccl { class ParsingScope { public: ParsingScope(const Corpus2::Tagset& tagset, const Lexicons& lexicons) : tagset_(tagset), variables_(), lexicons_(lexicons) { } explicit ParsingScope(const WcclFile& file) : tagset_(file.tagset()), variables_(), lexicons_(file.get_lexicons()) { } ParsingScope new_scope() const { return ParsingScope(tagset_, lexicons_); } const Corpus2::Tagset& tagset() const { return tagset_; } Variables& variables() { return variables_; } const Variables& variables() const { return variables_; } const Lexicons& lexicons() const { return lexicons_; } private: const Corpus2::Tagset& tagset_; Variables variables_; const Lexicons& lexicons_; }; } /* end ns Wccl */ #endif // LIBWCCL_PARSER_PARSINGSCOPE_H