/FileExtraction/Java_unseen/slavpetrov_berkeleyparser/src/edu/berkeley/nlp/io/PerlIOFuncs.java
/**
 * 
 */
package edu.berkeley.nlp.io;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

/**
 * @author adpauls
 * 
 */
public class PerlIOFuncs {

	public enum ControlStatement {
		next, last, redo;
	}

	public static String chomp(String s) {
		String lineSep = System.getProperty("line.separator");
		if (s.endsWith(lineSep)) {
			return s.substring(s.length() - lineSep.length());
		} else {
			return s;
		}
	}

	public static interface LineCallback {
		ControlStatement handleLine(String line);
	}

	public static void diamond(File file, LineCallback c) {
		try {
			BufferedReader r = new BufferedReader(new FileReader(file));
			String line = null;
			while ((line = r.readLine()) != null) {
				ControlStatement cont = c.handleLine(line);
				switch (cont) {
				case next:
					continue;
				case redo:
					continue;
				case last:
					break;
				}
			}
		} catch (IOException e) {
			throw new RuntimeException(e);
		}

	}
}
