Skip to content
Snippets Groups Projects
parsingscope.h 974 B
Newer Older
#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_(),
	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