Package org.sugarj.driver

Source Code of org.sugarj.driver.RetractableTreeBuilder

package org.sugarj.driver;

import org.spoofax.interpreter.terms.ISimpleTerm;
import org.spoofax.jsglr.client.imploder.TermTreeFactory;
import org.spoofax.jsglr.client.imploder.TreeBuilder;
import org.sugarj.common.ATermCommands;

/**
* @author Sebastian Erdweg <seba at informatik uni-marburg de>
*/
public class RetractableTreeBuilder extends TreeBuilder {
 
  private boolean isInitialized;
 
  public RetractableTreeBuilder() {
    super(new TermTreeFactory(ATermCommands.factory));
  }
 
  @Override
  public void reset() {
    // TODO enable resets for disambiguation etc., restoring the startOffset after the last successful piece of parsing.
  }
 
  @Override
  public void reset(int startOffset) {
  // TODO enable resets for disambiguation etc., restoring the startOffset after the last successful piece of parsing.
  }
 
  @Override
  public void initializeInput(String input, String filename) {
    if (getOffset() != 0)
      return;
   
    if (getInput() == null)
      setInput(input);
   
    setTokenizer(new RetractableTokenizer(input, filename, getParseTable().getKeywordRecognizer()));
    isInitialized = true;
  }
 
  public void retract(ISimpleTerm term) {
    assert getTokenizer() instanceof RetractableTokenizer;
    ((RetractableTokenizer) getTokenizer()).retract(term);
    setOffset(getTokenizer().getStartOffset());
  }
 
  public void setOffset(int offset) {
    super.setOffset(offset);
  }
 
  public boolean isInitialized() {
    return isInitialized;
  }
 
  /**
   * Do *not* recreate tree.
   */
  @Override
  protected Object recreateWithAllTokens(Object tree) {
    return tree;
  }
}
TOP

Related Classes of org.sugarj.driver.RetractableTreeBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.