anchor.diff:            stepStatus.trace = s.toString();
             scenarioStatus.failedSteps.add(stepStatus);
           } finally {
  +          if (!stepStatus.failed) {
  +            scenarioStatus.passedSteps.add(stepStatus);
  +          }
             stepStatus.writeIntoBuffer();
             scenarioStatus.buffer.merge(stepStatus.buffer);
           }
  
positive.code:   GherkinTable table = new GherkinTable();
    Location location;
  
    Step(this.verbiage, this.location);
  
    String toString() {
  
negative.code:     }
    }
  
    dynamic unserialize(String parameter) {
      var unserialized = parameter;
      // Int ?
      try { unserialized = int.parse(parameter); }
      on FormatException catch (_) {}
      // Num ?
      try { unserialized = num.parse(parameter); }
      on FormatException catch (_) {}
  
      return unserialized;
    }
  
    String _generateBoilerplate() {
      var matchString = verbiage.replaceAll(new RegExp("\".+?\""), "\\\"(\\\\w+?)\\\"");
      var columnsVerbiage = table.length > 0 ? ", { ${table.names.join(", ")} }" : "";
      return ("\n@StepDef(\"$matchString\")\n${_generateFunctionName()}(ctx, params$columnsVerbiage) {\n  // todo \n}\n");
  