I use the ; operator to combine two strategies but only the first is executed. The two strategies are all used to generate files from one source file.

Asked by Guido Wachsmuth on 19 March 2013 at 04:28

There are two reasons why this can happen:

  1. The first strategy fails late. You can observe side effects of this strategy (such as a generated file) because side effects are not rolled back. However, the failing of the strategy prevents the execution of the second strategy.
  2. The second strategy fails early before anything is generated.

You can add debug messages to your code, to figure out where a strategy fails: debug(!"before s1 "); s1; debug(!"after s1 "); s2; debug(!"after s2 ").

Answered by Guido Wachsmuth on 19 March 2013 at 04:32