boost::shared_ptr<IFunction> operator()(const Reference& R)const { if( R.IsNull() ) throw std::logic_error("Calling a nullreference"); else throw std::logic_error("Expected function; Is table"); }
std::string operator()(const Reference& ref)const { if( ref.IsNull() ) return "Nullreference"; return "Reference"; }
NumberToken operator()(const Reference& R)const { if( R.IsNull() ) throw NullReferenceException("Dereferencing a nullreference"); else throw std::logic_error("Table is not convertible to a number"); }
std::string operator()(const Reference& ref)const { if( ref.IsNull() ) throw NullReferenceException("Dereferencing a nullreference"); else return "Reference -> table"; }