From 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 Mon Sep 17 00:00:00 2001
From: Joe Hunkeler <jhunkeler@gmail.com>
Date: Tue, 11 Aug 2015 16:51:37 -0400
Subject: Repatch (from linux) of OSX IRAF

---
 pkg/language/doc/switch.hlp | 82 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)
 create mode 100644 pkg/language/doc/switch.hlp

(limited to 'pkg/language/doc/switch.hlp')

diff --git a/pkg/language/doc/switch.hlp b/pkg/language/doc/switch.hlp
new file mode 100644
index 00000000..a79b9536
--- /dev/null
+++ b/pkg/language/doc/switch.hlp
@@ -0,0 +1,82 @@
+.help "switch,case,default" Feb86 language
+.ih
+NAME
+switch -- switch case statement
+.ih
+SYNTAX
+.nf
+switch (expr) {
+case val1 [, val1,...]:
+    statements
+case val3 [, val3,...]:
+    statements
+	(etc.)
+default:
+    statements
+}
+.fi
+.ih
+ELEMENTS
+.ls expr
+An integer-valued expression tested before entry into the switch block.
+.le
+.ls valN
+Integer valued constants used to match expression.
+.le
+.ls statements
+Simple or compound statements to be executed when the appropriate case or
+default block is selected.
+.le
+.ih
+DESCRIPTION
+The \fIswitch\fR statement provides a multiway branch capability.
+The switch expression is evaluated and control branches to the matching
+\fIcase\fR block.  If there is no match the \fIdefault\fR block, if present,
+receives control.  If no \fIdefault\fR block is present, the switch is skipped.
+
+Each \fIcase\fR statement consists of a list of values defining the case,
+and an executable statement (possibly compound) to be executed if the case
+is selected by the switch.  Execution will continue until the next case is
+reached, at which time a branch out of the \fIswitch\fR statement occurs.
+Note this difference from the C switch case, where an explicit \fIbreak\fR
+statement is required to exit a switch.  If a \fIbreak\fR is used in a CL
+switch, it will act upon the loop statement containing the switch, not the
+switch itself.
+
+Note that both the switch expression and the case constants may
+be integers, or single characters which are evaluated to their
+ASCII equivalents.
+
+The \fIdefault\fR statement must be the last statement in the switch block.
+.ih
+EXAMPLES
+1. Multiple cases, no default case.
+
+.nf
+	switch (opcode) {
+	case 1:
+	    task1 (args)
+	case 2:
+	    task2 (args)
+	case 5:
+	    task5 (args)
+	}
+.fi
+
+2. Multiple values in a case.
+
+.nf
+	switch (digit) {
+	case '1','2','3','4','5','6','7':
+	    n = n * 8 + digit - '0'
+	default:
+	    error (1, "invalid number")
+	}
+.fi
+.ih
+BUGS
+Only integer values are allowed (no strings).
+The case values must be constants; ranges are not permitted.
+.ih
+SEE ALSO
+if else, goto
-- 
cgit 

