
package LazyLRSEvaluators;

import LRStructure.*;
//import LRSVisitor.*;
import Logic.*;

public class LazySieveEval extends ALazyEval
{
	/** @SBGen Variable (,helper,,64)   */
	LazyFilterEval lazyFilterEval;
	int value = 2;


	public LazySieveEval()
	{
      LRStruct src = (new LazyIncEval (value, 1)).makeLRS (); // src is all integers from 2.
      lazyFilterEval = new LazyFilterEval (new ModPredStrategy(value), src);
	}

	public LRStruct nextLRS()
	{
		value = ((Integer)lazyFilterEval.nextLRS().getFirst()).intValue();
		lazyFilterEval = new LazyFilterEval (new ModPredStrategy(value), lazyFilterEval.makeLRS ());
		return makeLRS ();
	}

	public LRStruct makeLRS()
	{
		return makeLazyLRS(new Integer(value));
	}
}

