Here, in no particular order, are the rules I found:
hole ::= "" ""
option ::= spaces = 0
platform_high ::= "/X\"
platform ::= platform_basic | platform_basic | platform_basic | platform_low | platform_high
pitfallsegment ::= platform | platform | hazard
hazard ::= hole | spikes
pitfallgame ::= pitfallsegment pitfallsegment pitfallsegment | pitfallsegment pitfallsegment pitfallgame
platform_basic ::= "xxx"
platform_low ::= __SPACE __SPACE __SPACE
spikes ::= "^^^"
__SPACE ::= "" ""
bnf ::=
 pitfallgame 




This is what I did with them:
Iteration 1: Lookup: bnf ::=
 pitfallgame 

Iteration 2: Iteration 3: Lookup: pitfallgame ::= pitfallsegment pitfallsegment pitfallsegment
Iteration 4: Lookup: pitfallsegment ::= platform
Iteration 5: Lookup: platform ::= platform_basic
Iteration 6: Lookup: platform_basic ::= "xxx"
Iteration 7: Iteration 8: Lookup: pitfallsegment ::= platform
Iteration 9: Lookup: platform ::= platform_basic
Iteration 10: Lookup: platform_basic ::= "xxx"
Iteration 11: Iteration 12: Lookup: pitfallsegment ::= platform
Iteration 13: Lookup: platform ::= platform_high
Iteration 14: Lookup: platform_high ::= "/X\"
Iteration 15: Iteration 16:

..and here's what I got:
xxxxxx/X\


Vitenka/PlatformGenerator