package lrs.visitor; import lrs.*; /** * * @author DXN */ class ReverseHelp implements IAlgo { public static final ReverseHelp Singleton = new ReverseHelp (); private ReverseHelp () { } /** * @param host the remaining tail of the list to be reversed. * @param top from top to host is the reversed list so far. * @return null. */ public Object forEmpty(LRStruct remaining, Object top) { return null; } /** * @param host the remaining tail of the list to be reversed. * @param top from top to host is the reversed list so far. * @return null. */ public Object forNonEmpty(LRStruct host, Object top) { Object hostFirst = host.removeFront(); // host has "advanced". ((LRStruct)top).insertFront (hostFirst); return host.execute(this, top); } }