{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: DO)}}
====== DO ======
(GIN Macro)
**Defined in:** [[george:source:IFMACS|IFMACS]]
**Used in:** [[george:source:CONSET864|CONSET864]], [[george:source:FORMLOOP865|FORMLOOP865]], [[george:source:IDFCONF867|IDFCONF867]], [[george:source:IPBLISTA867|IPBLISTA867]], [[george:source:IPBLISTD867|IPBLISTD867]], [[george:source:LISTOPEN867|LISTOPEN867]], [[george:source:LISTRING864|LISTRING864]], [[george:source:MESSA|MESSA]], [[george:source:MESSAA|MESSAA]], [[george:source:MESSAB|MESSAB]], [[george:source:MESSB|MESSB]], [[george:source:MESSCF|MESSCF]], [[george:source:MESSCH|MESSCH]], [[george:source:MESSDB|MESSDB]], [[george:source:OPER864|OPER864]], [[george:source:OPERA864|OPERA864]], [[george:source:OPERAPP864|OPERAPP864]], [[george:source:OPERIN867|OPERIN867]], [[george:source:PCTBEGIN863|PCTBEGIN863]], [[george:source:SHOWCOMM864|SHOWCOMM864]], [[george:source:WA864|WA864]], [[george:source:WHATPROP865|WHATPROP865]], [[george:source:WHATRVS867|WHATRVS867]], [[george:source:WHATRVSA867|WHATRVSA867]], [[george:source:WLA867|WLA867]], [[george:source:WLAA867|WLAA867]], [[george:source:WLB867|WLB867]], [[george:source:WLC867|WLC867]], [[george:source:WLD864|WLD864]], [[george:source:WLE862|WLE862]], [[george:source:WLF862|WLF862]], [[george:source:WLG862|WLG862]], [[george:source:WLOUT865|WLOUT865]]
6R#= [
6RRW [
6S?G [??? DO SECT DEVT FGN 1 DOC
6SR6 [
6T=Q #MAC DO
6TQB [ ==
6W=2 [
6WPL [ (FOLLOWING 'WHILE')
6X9= [ ENSURES:
6XNW [ 'DO' NOT FOUND
6Y8G [ 'OR' NOT EXPECTED
6YN6 [ CURRENT STUCTURE = ITERATION
6^7Q [ SETS:
6^MB [ 'DO' FOUND
7272 [ COMPILES:
72LL [ LABEL FOR START OF ITERATION BODY
736= [
73KW [ (NOT FOLLOWING 'WHILE')
745G [ SETS:
74K6 [ DEPTH UP, ADVANCES THE THREE STACK IDENTIFIERS
754Q [ CURRENT STUCTURE = ITERATION
75JB [ 'DO' FOUND
7642 [ 'OR' NOT EXPECTED
76HL [ COMPILES:
773= [ LABEL FOR START OF ITERATION
77GW [
782G #UNS NESTDEPTH
78G6 (
78^Q #SKI NESTFLAG^NESTREASON&1<1$1
79FB ( [IF FOLLOWS 'WHILE'
79^2 FLAGTEST DO,0,NOT,0,,A CATASTROPHE
7=DL #ALT NESTFLAG=NESTFLAG^1 [SET 'DO'
7=Y= STRUCTURE 0,CHECK
7?CW #SKI NESTDEPTH/9
7?XG (
7#C6 #ALT 20?=NESTDEPTH-9
7#WQ NESTLABEL NIF6,FREE
7*BB #EXI
7*W2 )
7B*L #ALT 20?=NESTDEPTH-1
7BT= NESTLABEL NIF1,FREE
7C#W #EXI
7CSG )
7D#6 ) [IF DOESN'T FOLLOW 'WHILE'
7DRQ #OPT NESTREASON=0
7F?B #OPT NESTFLAG=0
7FR2 #OPT NESTDEPTH=0
7G=L #OPT NESTEITHERS=0
7GQ= STRUCTURE 0,ON
7H9W ALTDEPTH +1
7HPG #ALT NESTFLAG=NESTFLAG^1 [SET 'DO'
7J96 #SKI NESTDEPTH/9
7JNQ (
7K8B #ALT 20?=NESTDEPTH-9
7KN2 NESTLABEL NIF5
7L7L #EXI
7LM= )
7M6W #ALT 20?=NESTDEPTH-1
7MLG NESTLABEL NIF0
7N66 #NOR