This shows you the differences between two versions of the page.
switch [2006/08/29 16:08] |
switch [2006/08/29 16:08] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | #$EPIC: switch.txt,v 1.2 2006/08/20 16:57:01 sthalik Exp $ | ||
+ | ======Synopsis:====== | ||
+ | __switch__ (<control text>) { (<switch>) { <body> } } | ||
+ | |||
+ | ======Description:====== | ||
+ | __SWITCH__ is similar to C's switch statement. It allows for multiple | ||
+ | alternatives to a given "control" statement where more than two | ||
+ | possible values exist. It is functionally similar to [[IF]] except it | ||
+ | doesn't require excessive nesting for multiple alternatives. | ||
+ | |||
+ | Whitespace is not significant any any part of __SWITCH__. Braces may | ||
+ | appear anywhere, and multiple switches may appear on the same line | ||
+ | or on individual lines. No logic takes place inside the switch, only | ||
+ | string comparisons. For this reason, the expression parser is not | ||
+ | needed (nor allowed), as everything is assumed to be a string, and | ||
+ | variables are expanded. | ||
+ | |||
+ | Breaks and "Fall through" support, as in C, is not supported by EPIC. | ||
+ | If you need to perform the same command in multiple switches, it must | ||
+ | be present in each switch's body. | ||
+ | |||
+ | ======Examples:====== | ||
+ | A simple switch that checks the value of an arbitrary input: | ||
+ | switch ( $0 ) { | ||
+ | ( foo ) { | ||
+ | <do action for "foo"> | ||
+ | } | ||
+ | ( bar ) ( blah ) { | ||
+ | <do action for "bar" or "blah"> | ||
+ | } | ||
+ | ( * ) { | ||
+ | <do action for everything else> | ||
+ | } | ||
+ | } | ||