Rename numeric_literal -> primitive_literal

This commit is contained in:
Nikita Lisitsa 2025-12-22 23:49:08 +03:00
parent 35435ac626
commit c3c208b6a3
4 changed files with 26 additions and 26 deletions

View file

@ -9,25 +9,25 @@ namespace pslang::ast
{
template <typename T>
struct numeric_literal_base
struct primitive_literal_base
{
T value;
ast::location location;
};
using bool_literal = numeric_literal_base<bool>;
using bool_literal = primitive_literal_base<bool>;
using i8_literal = numeric_literal_base<std::int8_t>;
using u8_literal = numeric_literal_base<std::uint8_t>;
using i16_literal = numeric_literal_base<std::int16_t>;
using u16_literal = numeric_literal_base<std::uint16_t>;
using i32_literal = numeric_literal_base<std::int32_t>;
using u32_literal = numeric_literal_base<std::uint32_t>;
using i64_literal = numeric_literal_base<std::int64_t>;
using u64_literal = numeric_literal_base<std::uint64_t>;
using i8_literal = primitive_literal_base<std::int8_t>;
using u8_literal = primitive_literal_base<std::uint8_t>;
using i16_literal = primitive_literal_base<std::int16_t>;
using u16_literal = primitive_literal_base<std::uint16_t>;
using i32_literal = primitive_literal_base<std::int32_t>;
using u32_literal = primitive_literal_base<std::uint32_t>;
using i64_literal = primitive_literal_base<std::int64_t>;
using u64_literal = primitive_literal_base<std::uint64_t>;
using f32_literal = numeric_literal_base<float>;
using f64_literal = numeric_literal_base<double>;
using f32_literal = primitive_literal_base<float>;
using f64_literal = primitive_literal_base<double>;
using literal = std::variant<
bool_literal,

View file

@ -13,7 +13,7 @@ namespace pslang::ast
using const_expression_visitor::apply;
template <typename T>
location apply(numeric_literal_base<T> const & node)
location apply(primitive_literal_base<T> const & node)
{
return node.location;
}

View file

@ -187,7 +187,7 @@ namespace pslang::interpreter
value eval_impl(context & context, ast::expression_ptr const & expression);
template <typename T>
value eval_impl(context & context, ast::numeric_literal_base<T> const & literal)
value eval_impl(context & context, ast::primitive_literal_base<T> const & literal)
{
return primitive_value(primitive_value_base<T>{literal.value});
}

View file

@ -44,13 +44,13 @@ struct context;
YY_DECL;
template <typename T>
::pslang::ast::literal parse_numeric_literal(std::string const & str, ::pslang::ast::location const & location)
::pslang::ast::literal parse_primitive_literal(std::string const & str, ::pslang::ast::location const & location)
{
T value;
auto result = std::from_chars(str.data(), str.data() + str.size(), value);
if (result.ec != std::errc())
throw std::system_error(std::make_error_code(result.ec));
return ::pslang::ast::numeric_literal_base<T>{value, location};
return ::pslang::ast::primitive_literal_base<T>{value, location};
}
}
@ -324,16 +324,16 @@ nonempty_comma_separated_expression_list
literal
: true { $$ = ast::literal(ast::bool_literal{true, ctx.location}); }
| false { $$ = ast::literal(ast::bool_literal{false, ctx.location}); }
| lit_i8 { $$ = parse_numeric_literal<std::int8_t>($1, ctx.location); }
| lit_u8 { $$ = parse_numeric_literal<std::uint8_t>($1, ctx.location); }
| lit_i16 { $$ = parse_numeric_literal<std::int16_t>($1, ctx.location); }
| lit_u16 { $$ = parse_numeric_literal<std::uint16_t>($1, ctx.location); }
| lit_i32 { $$ = parse_numeric_literal<std::int32_t>($1, ctx.location); }
| lit_u32 { $$ = parse_numeric_literal<std::uint32_t>($1, ctx.location); }
| lit_i64 { $$ = parse_numeric_literal<std::int64_t>($1, ctx.location); }
| lit_u64 { $$ = parse_numeric_literal<std::uint64_t>($1, ctx.location); }
| lit_f32 { $$ = parse_numeric_literal<float>($1, ctx.location); }
| lit_f64 { $$ = parse_numeric_literal<double>($1, ctx.location); }
| lit_i8 { $$ = parse_primitive_literal<std::int8_t>($1, ctx.location); }
| lit_u8 { $$ = parse_primitive_literal<std::uint8_t>($1, ctx.location); }
| lit_i16 { $$ = parse_primitive_literal<std::int16_t>($1, ctx.location); }
| lit_u16 { $$ = parse_primitive_literal<std::uint16_t>($1, ctx.location); }
| lit_i32 { $$ = parse_primitive_literal<std::int32_t>($1, ctx.location); }
| lit_u32 { $$ = parse_primitive_literal<std::uint32_t>($1, ctx.location); }
| lit_i64 { $$ = parse_primitive_literal<std::int64_t>($1, ctx.location); }
| lit_u64 { $$ = parse_primitive_literal<std::uint64_t>($1, ctx.location); }
| lit_f32 { $$ = parse_primitive_literal<float>($1, ctx.location); }
| lit_f64 { $$ = parse_primitive_literal<double>($1, ctx.location); }
| lit_char8 { $$ = ast::u8_literal{static_cast<std::uint8_t>($1), ctx.location}; }
;