#include namespace pslang::ast { namespace { template location get_location_impl(numeric_literal_base const & expression) { return expression.location; } location get_location_impl(literal const & expression) { return std::visit([](auto const & expression){ return get_location_impl(expression); }, expression); } template location get_location_impl(Expression const & expression) { return expression.location; } location get_location_impl(expression const & expression) { return std::visit([](auto const & expression){ return get_location_impl(expression); }, expression); } } location get_location(expression const & expression) { return get_location_impl(expression); } }