Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #60884

Re: "Control structure mismatch" with simple if-else-then in SwiftForth

From "HAA" <someone@microsoft.com>
Newsgroups comp.lang.forth
Subject Re: "Control structure mismatch" with simple if-else-then in SwiftForth
Date 2017-06-17 14:55 +1000
Organization Aioe.org NNTP Server
Message-ID <oi2cnu$14ja$1@gioia.aioe.org> (permalink)
References <a2c14f1a-2f79-4f3a-a56a-e99b0327785e@googlegroups.com>

Show all headers | View raw


christopherdumas@gmail.com wrote:
> I'm new to Forth and I've recently downloaded the Free Trial of SwiftForth, which I am
> exceedingly happy with, because it integrates with Emacs and is one of the nicest, most
> dynamic and interactive languages I've used. However, there is just a tiny problem: I
> can't get a simple if-else-then to work in the REPL. Here is my code so far:
>
> 0 2 rnd 1 = if 1+ else 2 * then       Control structure mismatch
>
> It seems simple (and correct) to me. I'm sure its probably something simple that I'm
> missing, but there's no info on the internet on "Control structure mismatch"es. On a
> side note, this:
>
> : TEST ( n -- ) dup 0= IF drop ELSE process THEN ;
>
> seems to work, but this:
>
> 7 dup 0= IF drop ELSE process THEN
>
> Does not. So I'm thinking that control structures don't work unless they are in
> definitions? Is this correct at all? I seem to vaguely remember something about this
> from the GForth manual. Thanks!

FWIW the "Control structure mismatch" message derives from THEN wanting
to see an appropriate value on the data stack placed there by IF or ELSE.
The other operators you used (1+ 2 * etc) messes that up.  Had you just
written  IF ELSE THEN  there would be no message (but neither would it do
anything :)

Ideally SwiftForth would have 'compile-only' words such as IF check whether
the system is in compilation state and issue an error message otherwise.
In Fig-Forth that word was called ?COMP.


Back to comp.lang.forth | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

"Control structure mismatch" with simple if-else-then in SwiftForth christopherdumas@gmail.com - 2017-06-14 07:22 -0700
  Re: "Control structure mismatch" with simple if-else-then in SwiftForth Cecil Bayona <cbayona@cbayona.com> - 2017-06-14 09:47 -0500
    Re: "Control structure mismatch" with simple if-else-then in SwiftForth "Elizabeth D. Rather" <erather@forth.com> - 2017-06-14 08:47 -1000
      Re: "Control structure mismatch" with simple if-else-then in SwiftForth hughaguilar96@gmail.com - 2017-06-16 11:22 -0700
        Re: "Control structure mismatch" with simple if-else-then in SwiftForth albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-06-16 20:31 +0200
          Re: "Control structure mismatch" with simple if-else-then in SwiftForth "Elizabeth D. Rather" <erather@forth.com> - 2017-06-16 16:29 -1000
        Re: "Control structure mismatch" with simple if-else-then in SwiftForth Cecil Bayona <cbayona@cbayona.com> - 2017-06-16 15:38 -0500
          Re: "Control structure mismatch" with simple if-else-then in SwiftForth Julian Fondren <julian.fondren@gmail.com> - 2017-06-16 18:12 -0700
          Re: "Control structure mismatch" with simple if-else-then in SwiftForth peter.m.falth@gmail.com - 2017-06-17 15:10 -0700
            Re: "Control structure mismatch" with simple if-else-then in SwiftForth "Robert L." <No_spamming@noWhere_7073.org> - 2017-06-18 00:50 +0000
  Re: "Control structure mismatch" with simple if-else-then in SwiftForth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-06-14 14:47 +0000
    Re: "Control structure mismatch" with simple if-else-then in SwiftForth "Robert L." <No_spamming@noWhere_7073.org> - 2017-06-14 16:16 +0000
      Re: "Control structure mismatch" with simple if-else-then in SwiftForth julian.fondren@endurance.com - 2017-06-14 09:34 -0700
      Re: "Control structure mismatch" with simple if-else-then in SwiftForth "HAA" <someone@microsoft.com> - 2017-06-16 10:20 +1000
        Re: "Control structure mismatch" with simple if-else-then in SwiftForth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-06-17 17:50 +0000
          Re: "Control structure mismatch" with simple if-else-then in SwiftForth Julian Fondren <julian.fondren@gmail.com> - 2017-06-17 12:11 -0700
  Re: "Control structure mismatch" with simple if-else-then in SwiftForth hum9 <obi65537@gmail.com> - 2017-06-14 18:12 +0300
    Re: "Control structure mismatch" with simple if-else-then inSwiftForth "Robert L." <No_spamming@noWhere_7073.org> - 2017-06-14 16:21 +0000
      Re: "Control structure mismatch" with simple if-else-then inSwiftForth Julian Fondren <julian.fondren@gmail.com> - 2017-06-14 09:37 -0700
        Re: "Control structure mismatch" with simple if-else-then inSwiftForth christopherdumas@gmail.com - 2017-06-14 10:48 -0700
  Re: "Control structure mismatch" with simple if-else-then in SwiftForth Julian Fondren <julian.fondren@gmail.com> - 2017-06-14 09:10 -0700
  Re: "Control structure mismatch" with simple if-else-then in SwiftForth The Beez <the.beez.speaks@gmail.com> - 2017-06-16 01:47 -0700
  Re: "Control structure mismatch" with simple if-else-then in SwiftForth "HAA" <someone@microsoft.com> - 2017-06-17 14:55 +1000

csiph-web