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> template <typename T>
struct numeric_literal_base struct primitive_literal_base
{ {
T value; T value;
ast::location location; 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 i8_literal = primitive_literal_base<std::int8_t>;
using u8_literal = numeric_literal_base<std::uint8_t>; using u8_literal = primitive_literal_base<std::uint8_t>;
using i16_literal = numeric_literal_base<std::int16_t>; using i16_literal = primitive_literal_base<std::int16_t>;
using u16_literal = numeric_literal_base<std::uint16_t>; using u16_literal = primitive_literal_base<std::uint16_t>;
using i32_literal = numeric_literal_base<std::int32_t>; using i32_literal = primitive_literal_base<std::int32_t>;
using u32_literal = numeric_literal_base<std::uint32_t>; using u32_literal = primitive_literal_base<std::uint32_t>;
using i64_literal = numeric_literal_base<std::int64_t>; using i64_literal = primitive_literal_base<std::int64_t>;
using u64_literal = numeric_literal_base<std::uint64_t>; using u64_literal = primitive_literal_base<std::uint64_t>;
using f32_literal = numeric_literal_base<float>; using f32_literal = primitive_literal_base<float>;
using f64_literal = numeric_literal_base<double>; using f64_literal = primitive_literal_base<double>;
using literal = std::variant< using literal = std::variant<
bool_literal, bool_literal,

View file

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

View file

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

View file

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