#ifndef LIBWCCL_ANTLRPARSERRESULT_H #define LIBWCCL_ANTLRPARSERRESULT_H #include <boost/shared_ptr.hpp> #include <libwccl/variables.h> #include <libwccl/ops/functions.h> template<class T> class ANTLRParserResult; class ANTLRParserResultBase { public: ANTLRParserResultBase() : variables(new Wccl::Variables()) { } boost::shared_ptr<Wccl::Variables> variables; virtual boost::shared_ptr<Wccl::FunctionBase> get_op_base() const = 0; }; template<class T> class ANTLRParserResult : public ANTLRParserResultBase { public: ANTLRParserResult() { } boost::shared_ptr<Wccl::Variables> variables; boost::shared_ptr<Wccl::Function<T> > op; boost::shared_ptr<Wccl::FunctionBase> get_op_base() const { return op; } }; #endif // ANTLRPARSERRESULT_H