Вход Регистрация
Файл: Space race/libs/Editor_files/Iterator.js
Строк: 73
<?php
var pgli pgli || {};
pgli.lang pgli.lang || {};

pgli.lang.Iterator gamecore.Base.extend('Iterator',
// Static
{
    
MAX_ITERATIONS1000,

    
COMPARATORS: {
        
"<"0,
        
">"1,
        
"<="2,
        
">="3
    
},

    
genComparatorMethod: function(type)
    {
        switch(
type)
        {
        case 
0:
            return function(
ab){ return };
        case 
1:
            return function(
ab){ return };
        case 
2:
            return function(
ab){ return <= };
        case 
3:
            return function(
ab){ return >= };
        default:
            return function(
ab){ return false };
        }
    },

    
genStepMethod: function(typescopeattr)
    {
        switch(
type)
        {
        case 
1:
        case 
3:
            return function(){ return --
scope[attr] };
        case 
0:
        case 
2:
        default:
            return function(){ return ++
scope[attr] };
        }
    }
},
// Instance
{
    
varname"i",
    
start0,
    
end1,
    
comparator0,
    
compMethodnull,
    
stepMethodnull,
    
step0,
    
iter0,

    
init: function(namestartcomparatorend)
    {
        var static = 
pgli.lang.Iterator;

        if(
comparator in static.COMPARATORS)
            
this.comparator = static.COMPARATORS[comparator];
        else
            
this.comparator = static.COMPARATORS["<"];

        
this.start start;
        
this.end end;
        
this.step start;

        
this.varname name;
        
this.compMethod = static.genComparatorMethod(this.comparator);
        
this.stepMethod = static.genStepMethod(this.comparatorthis"step");
    },

    
loop: function()
    {
        return (
this.iter pgli.lang.Iterator.MAX_ITERATIONS && this.compMethod(this.stepthis.end));
    },

    
next: function()
    {
        ++
this.iter;
        return 
this.stepMethod();
    },

    
toString: function()
    {
        return 
"Iterator("+this.varname+") "+this.start+" - "+this.step+" - "+this.end;
    }

});
?>
Онлайн: 1
Реклама