Rename numeric_literal -> primitive_literal
This commit is contained in:
parent
35435ac626
commit
c3c208b6a3
4 changed files with 26 additions and 26 deletions
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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}; }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue