Skip to content
Snippets Groups Projects
parsingscope.h 1.69 KiB
Newer Older
/*
    Copyright (C) 2011 Adam Wardyński, Tomasz Śniatowski, Paweł Kędzia,
    Adam Radziszewski, Bartosz Broda
    Part of the WCCL project

    This program is free software; you can redistribute it and/or modify it
Pawel Orlowicz's avatar
Pawel Orlowicz committed
under the terms of the GNU Lesser General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option)
any later version.

    This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. 

Pawel Orlowicz's avatar
Pawel Orlowicz committed
    See the LICENSE, COPYING.LESSER and COPYING files for more details.
#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 boost::shared_ptr<const Corpus2::Tagset> tagset, const Lexicons& lexicons)
		: tagset_(tagset),
		  variables_(new Variables()),
	explicit ParsingScope(const WcclFile& file)
		: tagset_(file.tagset()),
		  variables_(new Variables()),
		  lexicons_(file.get_lexicons())
	{
	}

	const boost::shared_ptr<const Corpus2::Tagset> tagset() const {
		return tagset_;
	}

	Variables& variables() {
	const Variables& variables() const {
	const Lexicons& lexicons() const {
		return lexicons_;
	void reset_variables() {
		variables_->reset_values();
	}
	const boost::shared_ptr<const Corpus2::Tagset> tagset_;
	boost::shared_ptr<Variables> variables_;
	const Lexicons& lexicons_;
};

} /* end ns Wccl */

#endif // LIBWCCL_PARSER_PARSINGSCOPE_H