/src/org/ooc/frontend/model/interfaces/MustBeResolved.java

http://github.com/nddrylliog/ooc · Java · 21 lines · 13 code · 5 blank · 3 comment · 0 complexity · a6c11e19a9a92b606afe210a1761d65a MD5 · raw file

  1. package org.ooc.frontend.model.interfaces;
  2. import org.ooc.frontend.model.Node;
  3. import org.ooc.frontend.model.NodeList;
  4. import org.ooc.middle.hobgoblins.Resolver;
  5. public interface MustBeResolved {
  6. public static enum Response {
  7. OK, /** means resolve() doesn't need to be called ever again */
  8. RESTART, /** means the AST has been changed significantly and the Resolved must start over again */
  9. LOOP, /** means resolve() is counting on other nodes to resolve before trying again */
  10. }
  11. /**
  12. * @return true if @link {@link Resolver} should do one more run, false otherwise.
  13. */
  14. public Response resolve(NodeList<Node> stack, Resolver res, boolean fatal);
  15. public boolean isResolved();
  16. }