All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.unlaxer.Cursor Maven / Gradle / Ivy

package org.unlaxer;

import org.unlaxer.util.NameSpecifier;

public interface Cursor> {
  
  public enum CursorKind{
    startInclusive,
    endExclusive
  }

	NameSpecifier getNameSpace();

	T setNameSpace(NameSpecifier nameSpace);

	LineNumber getLineNumber();
	
//	SubLineNumber getLineNumberOnThisSequence();

	T setLineNumber(LineNumber lineNumber);
	
  T incrementLineNumber();

	CodePointIndex getPosition();
	
//	SubCodePointIndex getPositionOnThisSequence();

	T setPosition(CodePointIndex position);
	
  T incrementPosition(); 

	T addPosition(CodePointOffset adding);

	CodePointOffset getPositionInLine();

	T setPositionInLine(CodePointOffset positionInLine);
	
	T resolveLineNumber(RootPositionResolver rootPositionResolver);
	
	CursorKind cursorKind();
	
	public interface EndExclusiveCursor extends Cursor{
	  
	  default CursorKind cursorKind() {
	    return CursorKind.endExclusive;
	  }
	}
	
	public interface StartInclusiveCursor extends Cursor{
    
    default CursorKind cursorKind() {
      return CursorKind.startInclusive;
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy