Added short/long and unsigned types for all int based types
This commit is contained in:
@@ -396,14 +396,26 @@ obj ast_transformation (Object) {
|
||||
return type_ptr(base_type::void_return(), indirection, is_ref)
|
||||
else if (type_syntax_str == "bool")
|
||||
return type_ptr(base_type::boolean(), indirection, is_ref)
|
||||
else if (type_syntax_str == "char")
|
||||
return type_ptr(base_type::character(), indirection, is_ref)
|
||||
else if (type_syntax_str == "uchar")
|
||||
return type_ptr(base_type::ucharacter(), indirection, is_ref)
|
||||
else if (type_syntax_str == "short")
|
||||
return type_ptr(base_type::short_int(), indirection, is_ref)
|
||||
else if (type_syntax_str == "ushort")
|
||||
return type_ptr(base_type::ushort_int(), indirection, is_ref)
|
||||
else if (type_syntax_str == "int")
|
||||
return type_ptr(base_type::integer(), indirection, is_ref)
|
||||
else if (type_syntax_str == "uint")
|
||||
return type_ptr(base_type::uinteger(), indirection, is_ref)
|
||||
else if (type_syntax_str == "long")
|
||||
return type_ptr(base_type::long_int(), indirection, is_ref)
|
||||
else if (type_syntax_str == "ulong")
|
||||
return type_ptr(base_type::ulong_int(), indirection, is_ref)
|
||||
else if (type_syntax_str == "float")
|
||||
return type_ptr(base_type::floating(), indirection, is_ref)
|
||||
else if (type_syntax_str == "double")
|
||||
return type_ptr(base_type::double_precision(), indirection, is_ref)
|
||||
else if (type_syntax_str == "char")
|
||||
return type_ptr(base_type::character(), indirection, is_ref)
|
||||
else if (get_node("function_type", real_node)) {
|
||||
var types = get_nodes("type", get_node("function_type", real_node)).map(fun(node: *tree<symbol>): *type transform_type(node, scope, template_replacements);)
|
||||
return type_ptr(types.slice(0,-2), types.last(), indirection, is_ref)
|
||||
@@ -766,6 +778,7 @@ obj ast_transformation (Object) {
|
||||
parameters = get_nodes("intrinsic_parameter", node).map(fun(child: *tree<symbol>): string return concat_symbol_tree(child);)
|
||||
if (get_nodes("type", node).size)
|
||||
type_parameters = get_nodes("type", node).map(fun(child: *tree<symbol>): *type return transform_type(child, scope, template_replacements);)
|
||||
/*return ast_compiler_intrinsic_ptr(concat_symbol_tree(get_node("identifier", node)), parameters, type_parameters, type_ptr(base_type::ulong_int()))*/
|
||||
return ast_compiler_intrinsic_ptr(concat_symbol_tree(get_node("identifier", node)), parameters, type_parameters, type_ptr(base_type::integer()))
|
||||
}
|
||||
fun transform_lambda(node: *tree<symbol>, scope: *ast_node, template_replacements: map<string, *type>): *ast_node {
|
||||
|
||||
Reference in New Issue
Block a user