Newer
Older
#ifndef LIBWCCL_PARSER_PARSER_H
#define LIBWCCL_PARSER_PARSER_H
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
#include <libwccl/variables.h>
#include <libwccl/values/strset.h>
// exceptions
#include <libwccl/parser/ParserException.h>
#include <libwccl/parser/ANTLRParserResult.h>
// ----------------------------------------------------------------------------
class Parser {
public:
Parser(const Corpus2::Tagset&);
~Parser();
// ---------------------------------------------------------------------------
// methods for parsing string operators
boost::shared_ptr<ANTLRParserResult<Wccl::StrSet> >
parseStringOperator(const std::string&) const;
boost::shared_ptr<ANTLRParserResult<Wccl::StrSet> >
parseStringOperator(std::istream&) const;
// ---------------------------------------------------------------------------
// methods for parsing bool operators
boost::shared_ptr<ANTLRParserResult<Wccl::Bool> >
parsePredicate(const std::string&) const;
boost::shared_ptr<ANTLRParserResult<Wccl::Bool> >
parsePredicate(std::istream&) const;
// ---------------------------------------------------------------------------
// methods for parsing bool operators
boost::shared_ptr<ANTLRParserResult<Wccl::TSet> >
parseSymSetOperator(const std::string&) const;
boost::shared_ptr<ANTLRParserResult<Wccl::TSet> >
parseSymSetOperator(std::istream&) const;
// ---------------------------------------------------------------------------
// methods for parsing position operators
boost::shared_ptr<ANTLRParserResult<Wccl::Position> >
parsePositionOperator(const std::string&) const;
boost::shared_ptr<ANTLRParserResult<Wccl::Position> >
parsePositionOperator(std::istream&) const;
// ---------------------------------------------------------------------------
// methods for parsing any operators
boost::shared_ptr<ANTLRParserResultBase>
parseAnyOperator(const std::string&) const;
boost::shared_ptr<ANTLRParserResultBase>
parseAnyOperator(std::istream&) const;
const Corpus2::Tagset& tagset() const {
return tagset_;
}
#endif // LIBWCCL_PARSER_PARSER_H