<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Switch statements</title><link>https://sourceforge.net/p/asil/wiki/Switch%2520statements/</link><description>Recent changes to Switch statements</description><atom:link href="https://sourceforge.net/p/asil/wiki/Switch%20statements/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 16 Feb 2014 10:37:52 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/asil/wiki/Switch%20statements/feed" rel="self" type="application/rss+xml"/><item><title>Switch statements modified by Will Pittenger</title><link>https://sourceforge.net/p/asil/wiki/Switch%2520statements/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -7,6 +7,7 @@
 This is closest to what C++ and C# have.

 ~~~~
+:::text
 switch i%
   case 3
     ' Handle case 3
@@ -26,6 +27,7 @@
 You don't need to have all the comparisons in a switch be on equality.  ASIL allows for an interrupted comparison.  In both of the switch statements below, ASIL will put the pieces together.

 ~~~~
+:::text
 switch i%
   case &lt; 3
     ' handle all cases less than 3
@@ -50,6 +52,7 @@
 If nothing follows the switch keyword, then each case must have the entire condition.

 ~~~~
+:::text
 switch
   case i% &lt; 3
     ' handle all cases where i% is less than 3
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Will Pittenger</dc:creator><pubDate>Sun, 16 Feb 2014 10:37:52 -0000</pubDate><guid>https://sourceforge.netc372c292e2a57525e3f716896b65484293059dfd</guid></item><item><title>Switch statements modified by Will Pittenger</title><link>https://sourceforge.net/p/asil/wiki/Switch%2520statements/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Will Pittenger</dc:creator><pubDate>Sun, 16 Feb 2014 10:00:57 -0000</pubDate><guid>https://sourceforge.net3c808d8fd70c9a53160d6b61dd95b1a35a0d2a2c</guid></item><item><title>Discussion for Switch clauses page</title><link>https://sourceforge.net/p/asil/wiki/Switch%2520clauses/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I considered making &lt;strong&gt;switch&lt;/strong&gt; a complex statement, but ended up building it into the language like I did with if/then/else.  Made for a more flexible syntax.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Will Pittenger</dc:creator><pubDate>Wed, 05 Feb 2014 08:54:45 -0000</pubDate><guid>https://sourceforge.netba30202e9a8e9d1d039060e375a01cf61b4ec914</guid></item><item><title>Switch clauses modified by Will Pittenger</title><link>https://sourceforge.net/p/asil/wiki/Switch%2520clauses/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -58,5 +58,5 @@
     ' handle F3 being more than 3.5

   else
-  ' handle everything else
+    ' handle everything else
 ~~~~
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Will Pittenger</dc:creator><pubDate>Wed, 05 Feb 2014 08:52:27 -0000</pubDate><guid>https://sourceforge.net245d789713b6dad1b5cc97918df667295721c272</guid></item><item><title>Switch clauses modified by Will Pittenger</title><link>https://sourceforge.net/p/asil/wiki/Switch%2520clauses/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Switch statements in ASIL may seem strange.  That's because you can vary how much of a comparison is done in the compilation stage.&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#your-basic-switch-statement"&gt;Your basic switch statement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#a-switch-with-more-comparison-options"&gt;A switch with more comparison options&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#a-switch-that-acts-like-an-ifelse-if"&gt;A switch that acts like an if/else if&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="your-basic-switch-statement"&gt;Your basic switch statement&lt;/h2&gt;
&lt;p&gt;This is closest to what C++ and C# have.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
    &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;Handle&lt;/span&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;Fall&lt;/span&gt; &lt;span class="n"&gt;through&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="n"&gt;allowed&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;this&lt;/span&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="n"&gt;does&lt;/span&gt; &lt;span class="n"&gt;something&lt;/span&gt;

  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;Fall&lt;/span&gt; &lt;span class="n"&gt;through&lt;/span&gt; &lt;span class="n"&gt;allowed&lt;/span&gt; &lt;span class="n"&gt;because&lt;/span&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;empty&lt;/span&gt;
    &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;handle&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="n"&gt;and&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;

  &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;All&lt;/span&gt; &lt;span class="n"&gt;other&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt;
    &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;handle&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="k"&gt;case&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="a-switch-with-more-comparison-options"&gt;A switch with more comparison options&lt;/h2&gt;
&lt;p&gt;You don't need to have all the comparisons in a switch be on equality.  ASIL allows for an interrupted comparison.  In both of the switch statements below, ASIL will put the pieces together.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
    &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;handle&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt; &lt;span class="n"&gt;less&lt;/span&gt; &lt;span class="n"&gt;than&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;

  &lt;span class="k"&gt;else&lt;/span&gt;
    &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;handle&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="n"&gt;other&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt;

&lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
    &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;Handle&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt; &lt;span class="n"&gt;greater&lt;/span&gt; &lt;span class="n"&gt;than&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;

  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;Since&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="n"&gt;started&lt;/span&gt; &lt;span class="n"&gt;with&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="n"&gt;subsequent&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt; &lt;span class="n"&gt;must&lt;/span&gt; &lt;span class="n"&gt;be&lt;/span&gt; &lt;span class="n"&gt;less&lt;/span&gt; &lt;span class="n"&gt;than&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;previous&lt;/span&gt; &lt;span class="k"&gt;case&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

  &lt;span class="k"&gt;else&lt;/span&gt;
    &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;Handle&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="n"&gt;remaining&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="a-switch-that-acts-like-an-ifelse-if"&gt;A switch that acts like an if/else if&lt;/h2&gt;
&lt;p&gt;If nothing follows the switch keyword, then each case must have the entire condition.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;switch&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
    &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;handle&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt; &lt;span class="n"&gt;where&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;less&lt;/span&gt; &lt;span class="n"&gt;than&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;

  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;3.5&lt;/span&gt;
    &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;handle&lt;/span&gt; &lt;span class="n"&gt;F3&lt;/span&gt; &lt;span class="n"&gt;being&lt;/span&gt; &lt;span class="n"&gt;more&lt;/span&gt; &lt;span class="n"&gt;than&lt;/span&gt; &lt;span class="mf"&gt;3.5&lt;/span&gt;

  &lt;span class="k"&gt;else&lt;/span&gt;
  &lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;handle&lt;/span&gt; &lt;span class="n"&gt;everything&lt;/span&gt; &lt;span class="k"&gt;else&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>Wed, 05 Feb 2014 08:50:48 -0000</pubDate><guid>https://sourceforge.netd118042325207a0238c7b07bb4286b18c55bb45a</guid></item></channel></rss>