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

org.jsoftware.simpleparser.SimpleParser Maven / Gradle / Ivy

package org.jsoftware.simpleparser;

import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SimpleParser implements Serializable {
	private static final long serialVersionUID = 1L;
	private List tokens;
	
	public SimpleParser(String... tokens){
		this.tokens = Arrays.asList(tokens);
	}

    public void parse(String input, SimpleParserCallback callback) {
		SimpleParserCallbackContext ctx = new SimpleParserCallbackContext(input);
		callback.documentStarts();
		if (tokens.isEmpty()) {
			ctx.setEndp(input.length());
			callback.documentEnds(ctx);
			return;
		} 
		Pattern pattern = preparePattern();
		Matcher matcher = pattern.matcher(input);
		int ind = 0;
		while(matcher.find(ind)) {
			int start = matcher.start();
			String token = matcher.group();
			ctx.setEndp(start);
			callback.tokenFound(ctx, token);
			ind = start + token.length();
			ctx.setStartp(ind);
		}
		ctx.setStartp(ind);
		ctx.setEndp(input.length());
		callback.documentEnds(ctx);
	}

	private Pattern preparePattern() {
		StringBuilder sb = new StringBuilder();
		sb.append('(');
		for(int i=0; i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy