lib/ometa/ometa/base.js
function() {
      var state = this.bt.current_state();

      for(var i=0,len=arguments.length; i<len; i++) {        
        try { 
          return arguments[i].call(this)
        } catch (f) { 
          this.bt.catch_mismatch(f);
          this.bt.restore(state);
        }
      }
      this.bt.mismatch("All alternatives failed");
    }
function() {
      var state = this.bt.current_state();

      for(var i=0,len=arguments.length; i<len; i++) {        
        try { 
          return arguments[i].call(this)
        } catch (f) { 
          this.bt.catch_mismatch(f);
          this.bt.restore(state);
        }
      }
      this.bt.mismatch("All alternatives failed");
    }
function ( ) { var state = this . bt . current_state ( ) ; for ( var i = 0 , len = arguments . length ; i < len ; i ++ ) { try { return arguments [ i ] . call ( this ) } catch ( f ) { this . bt . catch_mismatch ( f ) ; this . bt . restore ( state ) ; } } this . bt . mismatch ( "All alternatives failed" ) ; }
ordered alternatives rule_a | rule_b tries all alternatives until the first match
ordered alternatives rule_a | rule_b tries all alternatives until the first match