From b7072281717bfa95ac03812d62490aa6fc8d3d84 Mon Sep 17 00:00:00 2001 From: Maciej Suminski Date: Fri, 22 Jan 2016 12:12:55 +0100 Subject: [PATCH] vhdlpp: file_open_status enum. --- vhdlpp/library.cc | 1 + vhdlpp/std_types.cc | 12 ++++++++++++ vhdlpp/std_types.h | 1 + 3 files changed, 14 insertions(+) diff --git a/vhdlpp/library.cc b/vhdlpp/library.cc index f10b60404..beb0838d3 100644 --- a/vhdlpp/library.cc +++ b/vhdlpp/library.cc @@ -370,6 +370,7 @@ static void import_std_use(const YYLTYPE&loc, ActiveScope*res, perm_string packa res->use_name(perm_string::literal("text"), &primitive_INTEGER); res->use_name(perm_string::literal("line"), &primitive_STRING); res->use_name(type_FILE_OPEN_KIND.peek_name(), &type_FILE_OPEN_KIND); + res->use_name(type_FILE_OPEN_STATUS.peek_name(), &type_FILE_OPEN_STATUS); return; } else { sorrymsg(loc, "package %s of library %s not yet supported", package.str(), name.str()); diff --git a/vhdlpp/std_types.cc b/vhdlpp/std_types.cc index 9bb9744dd..e3990d10c 100644 --- a/vhdlpp/std_types.cc +++ b/vhdlpp/std_types.cc @@ -34,6 +34,7 @@ const VTypePrimitive primitive_TIME(VTypePrimitive::TIME); VTypeDef type_BOOLEAN(perm_string::literal("boolean")); VTypeDef type_FILE_OPEN_KIND(perm_string::literal("file_open_kind")); +VTypeDef type_FILE_OPEN_STATUS(perm_string::literal("file_open_status")); const VTypeArray primitive_CHARACTER(&primitive_BIT, 7, 0); const VTypeArray primitive_BIT_VECTOR(&primitive_BIT, vector (1)); @@ -64,6 +65,17 @@ void generate_global_types(ActiveScope*res) std_types[type_FILE_OPEN_KIND.peek_name()] = &type_FILE_OPEN_KIND; std_enums.push_back(enum_FILE_OPEN_KIND); + // file_open_status + list enum_FILE_OPEN_STATUS_vals; + enum_FILE_OPEN_STATUS_vals.push_back(perm_string::literal("open_ok")); + enum_FILE_OPEN_STATUS_vals.push_back(perm_string::literal("status_error")); + enum_FILE_OPEN_STATUS_vals.push_back(perm_string::literal("name_error")); + enum_FILE_OPEN_STATUS_vals.push_back(perm_string::literal("mode_error")); + VTypeEnum*enum_FILE_OPEN_STATUS = new VTypeEnum(&enum_FILE_OPEN_STATUS_vals); + type_FILE_OPEN_STATUS.set_definition(enum_FILE_OPEN_STATUS); + std_types[type_FILE_OPEN_STATUS.peek_name()] = &type_FILE_OPEN_STATUS; + std_enums.push_back(enum_FILE_OPEN_STATUS); + res->use_name(type_BOOLEAN.peek_name(), &type_BOOLEAN); res->use_name(perm_string::literal("bit"), &primitive_BIT); res->use_name(perm_string::literal("bit_vector"), &primitive_BIT_VECTOR); diff --git a/vhdlpp/std_types.h b/vhdlpp/std_types.h index b00dd503f..8a91890a3 100644 --- a/vhdlpp/std_types.h +++ b/vhdlpp/std_types.h @@ -39,6 +39,7 @@ extern const VTypePrimitive primitive_LINE; extern VTypeDef type_BOOLEAN; extern VTypeDef type_FILE_OPEN_KIND; +extern VTypeDef type_FILE_OPEN_STATUS; extern const VTypeArray primitive_CHARACTER; extern const VTypeArray primitive_BIT_VECTOR;