Add a char type
This commit is contained in:
@ -42,6 +42,10 @@ namespace gcc
|
||||
{
|
||||
format_number = "%f\n";
|
||||
}
|
||||
else if (argument_type == elna_char_type_node)
|
||||
{
|
||||
format_number = "%c\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
error_at(get_location(&argument->position()),
|
||||
@ -125,9 +129,14 @@ namespace gcc
|
||||
mpfr_clear(number);
|
||||
}
|
||||
|
||||
void generic_visitor::visit(source::boolean_literal *literal)
|
||||
void generic_visitor::visit(source::number_literal<bool> *boolean)
|
||||
{
|
||||
this->current_expression = build_int_cst_type(boolean_type_node, literal->boolean());
|
||||
this->current_expression = build_int_cst_type(boolean_type_node, boolean->number());
|
||||
}
|
||||
|
||||
void generic_visitor::visit(source::char_literal *character)
|
||||
{
|
||||
this->current_expression = build_int_cstu(elna_char_type_node, character->character());
|
||||
}
|
||||
|
||||
void generic_visitor::visit(source::binary_expression *expression)
|
||||
@ -262,6 +271,10 @@ namespace gcc
|
||||
{
|
||||
declaration_type = double_type_node;
|
||||
}
|
||||
else if (declaration->type().base() == "Char")
|
||||
{
|
||||
declaration_type = elna_char_type_node;
|
||||
}
|
||||
else
|
||||
{
|
||||
error_at(get_location(&declaration->type().position()),
|
||||
|
Reference in New Issue
Block a user