Xref: utzoo alt.lang.intercal:102 comp.lang.misc:6458 Path: utzoo!utgpu!cs.utexas.edu!uunet!mcsun!hp4nl!sci.kun.nl!wn3.sci.kun.nl!janhen From: janhen@wn3.sci.kun.nl (Jan Hendrikx) Newsgroups: alt.lang.intercal,comp.lang.misc Subject: Re: C-INTERCAL Version 0.6 available Keywords: INTERCAL ftp Message-ID: <2613@wn1.sci.kun.nl> Date: 10 Jan 91 14:12:03 GMT References: <11491@ur-cc.UUCP> <2609@wn1.sci.kun.nl> Sender: root@sci.kun.nl Followup-To: alt.lang.intercal Organization: University of Nijmegen, The Netherlands. Lines: 47 It looks like some people have misread the manual (that is, interpreted it differently than I did :-). Therefore, I'll quote a bit more and give line-by-line comments on the example I supplied. The manual says about ABSTAIN: This statement takes on one of two forms. It may not take on both at any one time. DO ABSTAIN FROM (label) causes the statement whose logical line label is (label) to be abstained from. PLEASE ABSTAIN FROM gerund list causes all statements of the specified type(s) to be abstained from, as in [deleted] As you can see, a STATEMENT can be abstained from, NOT an OPERATION (as indicated by the gerund list). Therefore, ABSTAIN FROM gerund is equivalent to ABSTAIN FROM (label) for each statement that consists of the specified operation. [The second sentence (It may not take on both at any one time) is just humorous because one statement CAN be only one form at a time, disallowing this is just funny. It cannot mean that you can use only one of the forms in the entire program, because such a drastic claim would have been more explicit, and is inconsistent with the text on REINSTATE] And this about REINSTATE: REINSTATEment nullifies the effects of an abstention. Either form of REINSTATEment can be used to "free" a statement, regardless of whether the statement was abstained from by gerund list, line label, or NOT. This confirms my "abbreviation" interpretation above. Now the example again: DO ABSTAIN FROM (52) This line is irrelevant here.. it abstains from (52). DO ABSTAIN FROM NEXTING (this line added by me) This abstains from all lines with NEXT.. here that is only (52). DO REINSTATE (52) This reinstates (52) and therefore undoes the previous two abstentions. Any other statements with NEXT are not affected. (52) DO (123) NEXT This should now be executed normally. DO ERROR: LABEL REINSTATING NOT WORKING and therefore control should not reach this statement. Oh, look at me... I only got the manual a few days ago and now I am already in a violent argument about its interpretation ;-)