aboutsummaryrefslogtreecommitdiff
path: root/include/elna/boot/symbol.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/elna/boot/symbol.h')
-rw-r--r--include/elna/boot/symbol.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/include/elna/boot/symbol.h b/include/elna/boot/symbol.h
index 1caba83..0c1026d 100644
--- a/include/elna/boot/symbol.h
+++ b/include/elna/boot/symbol.h
@@ -40,6 +40,7 @@ namespace elna::boot
struct slice_type;
struct procedure_type;
struct enumeration_type;
+ struct extern_type;
/**
* Represents a type stored in the symbol table.
@@ -59,7 +60,8 @@ namespace elna::boot
std::shared_ptr<array_type>,
std::shared_ptr<slice_type>,
std::shared_ptr<procedure_type>,
- std::shared_ptr<enumeration_type>
+ std::shared_ptr<enumeration_type>,
+ std::shared_ptr<extern_type>
>;
Payload payload;
@@ -188,6 +190,15 @@ namespace elna::boot
explicit enumeration_type(const std::vector<std::string>& members);
};
+ /**
+ * An opaque type declared with \c type T = extern. The representation is
+ * unknown, so the type has no properties and can only be used behind a
+ * pointer.
+ */
+ struct extern_type
+ {
+ };
+
class type_info;
class procedure_info;
class variable_info;