<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to keywords-enum</title><link>https://sourceforge.net/p/asil/wiki/keywords-enum/</link><description>Recent changes to keywords-enum</description><atom:link href="https://sourceforge.net/p/asil/wiki/keywords-enum/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 18 Feb 2014 13:32:31 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/asil/wiki/keywords-enum/feed" rel="self" type="application/rss+xml"/><item><title>keywords-enum modified by Will Pittenger</title><link>https://sourceforge.net/p/asil/wiki/keywords-enum/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -3,6 +3,7 @@
 Primitive-based enum types
 --------------------------
 ~~~~
+:::text
 \enum\ /Typeidentifier/
     [\extends\ /AnyPrimitiveTypeName/]
   ([EntryIdentifier [\=\ /ConstantExpressionForBaseType/]
@@ -18,6 +19,7 @@
 If you specify an **[extends](keywords-extends)** clause, that type must be an **[abstract](keywords-abstract)** structure derived from "&lt;code&gt;System.Enums.StructureBased&lt;/code&gt;".

 ~~~~
+:::text
 \enum\ \struct\ /TypeIdentifier/
     [extends /BaseType/]
   \values\
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Will Pittenger</dc:creator><pubDate>Tue, 18 Feb 2014 13:32:31 -0000</pubDate><guid>https://sourceforge.netd4e49f912bfe113f516c2fea8658ee509c63d95d</guid></item><item><title>keywords-enum modified by Will Pittenger</title><link>https://sourceforge.net/p/asil/wiki/keywords-enum/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Used to declare Enum types.  Enum types come in two form: Primitive-based and Structure-based.  Both are described in the section &lt;a class="alink" href="/p/asil/wiki/Enums/"&gt;[Enums]&lt;/a&gt; in full.  The syntax for both is below.&lt;/p&gt;
&lt;h2 id="primitive-based-enum-types"&gt;Primitive-based enum types&lt;/h2&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="k"&gt;enum&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;Typeidentifier&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="n"&gt;extends&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;AnyPrimitiveTypeName&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;EntryIdentifier&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ConstantExpressionForBaseType&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;/AnyPrimitiveTypeName/ must be an existing primitive type, either provided by ASIL or a custom type and defaults to &lt;code&gt;int&lt;/code&gt;.  The custom type must be a single field structure and that field must be a primitive.  /ConstantExpressionForBaseType/ must be a compiler-time constant expression that's valid for that base type.&lt;/p&gt;
&lt;h2 id="structure-based-enum-types"&gt;Structure-based enum types&lt;/h2&gt;
&lt;p&gt;This structure-like types are technically reference types, but the instances is limited to the values listed with the &lt;strong&gt;&lt;a class="" href="../keywords-values"&gt;values&lt;/a&gt;&lt;/strong&gt; keyword.  Each entry is an instance.  Normally you'll declare a &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-constructor/"&gt;constructor&lt;/a&gt;&lt;/strong&gt; and call it for each instance.  That &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-constructor/"&gt;constructor&lt;/a&gt;&lt;/strong&gt; will then initialize data members based on parameters you passed in the &lt;strong&gt;&lt;a class="" href="../keywords-values"&gt;values&lt;/a&gt;&lt;/strong&gt; clause of the enum type.&lt;/p&gt;
&lt;p&gt;If you specify an &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-extends/"&gt;extends&lt;/a&gt;&lt;/strong&gt; clause, that type must be an &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-abstract/"&gt;abstract&lt;/a&gt;&lt;/strong&gt; structure derived from "&lt;code&gt;System.Enums.StructureBased&lt;/code&gt;".&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="k"&gt;enum&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt; &lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;TypeIdentifier&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;extends&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;BaseType&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="n"&gt;values&lt;/span&gt;\
    &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt; &lt;span class="n"&gt;as&lt;/span&gt; &lt;span class="n"&gt;needed&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;  &lt;span class="n"&gt;For&lt;/span&gt; &lt;span class="n"&gt;each&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;re&lt;/span&gt; &lt;span class="n"&gt;calling&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;constructor&lt;/span&gt; &lt;span class="n"&gt;declared&lt;/span&gt; &lt;span class="n"&gt;by&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

  &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;Declare&lt;/span&gt; &lt;span class="n"&gt;one&lt;/span&gt; &lt;span class="n"&gt;or&lt;/span&gt; &lt;span class="n"&gt;more&lt;/span&gt; &lt;span class="n"&gt;constructors&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fields&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;and&lt;/span&gt; &lt;span class="n"&gt;other&lt;/span&gt; &lt;span class="n"&gt;methods&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Will Pittenger</dc:creator><pubDate>Tue, 18 Feb 2014 12:09:36 -0000</pubDate><guid>https://sourceforge.neta301f4cda4e943fd5712063b5d924b2471bcc72e</guid></item></channel></rss>