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

utils.PreparePackageResources Maven / Gradle / Ivy

The newest version!
package utils;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.puresoltechnologies.parsers.grammar.Grammar;
import com.puresoltechnologies.parsers.grammar.GrammarException;
import com.puresoltechnologies.parsers.grammar.GrammarReader;
import com.puresoltechnologies.parsers.lexer.Lexer;
import com.puresoltechnologies.parsers.lexer.LexerFactory;
import com.puresoltechnologies.parsers.lexer.LexerFactoryException;
import com.puresoltechnologies.parsers.parser.Parser;
import com.puresoltechnologies.parsers.parser.ParserFactory;
import com.puresoltechnologies.parsers.parser.ParserFactoryException;
import com.puresoltechnologies.purifinity.server.common.utils.packages.PackageBuilderUtils;
import com.puresoltechnologies.purifinity.server.common.utils.packages.PackageDirectory;
import com.puresoltechnologies.purifinity.server.test.lang.grammar.TestLanguageGrammar;

public class PreparePackageResources {

    private static final Logger logger = LoggerFactory.getLogger(PreparePackageResources.class);

    public static void main(String args[]) {
	try {
	    PackageBuilderUtils.createPackageDirectory(PackageDirectory.RES,
		    new File(TestLanguageGrammar.GRAMMAR_RESOURCE).getParentFile());

	    logger.info("Reading and persisting grammar...");
	    try (InputStream grammerResource = TestLanguageGrammar.class
		    .getResourceAsStream(TestLanguageGrammar.GRAMMAR_RESOURCE);) {
		if (grammerResource == null) {
		    throw new RuntimeException(
			    "Could not open test language grammar '" + TestLanguageGrammar.GRAMMAR_RESOURCE + "'!");
		}
		try (GrammarReader grammarReader = new GrammarReader(grammerResource);) {
		    Grammar grammar = grammarReader.getGrammar();
		    PackageBuilderUtils.persistObject(PackageDirectory.RES,
			    new File(TestLanguageGrammar.PERSISTED_GRAMMAR_RESOURCE), grammar);
		    logger.info("done.");

		    logger.info("Creating lexer...");
		    Lexer lexer = LexerFactory.create(grammar);
		    PackageBuilderUtils.persistObject(PackageDirectory.RES,
			    new File(TestLanguageGrammar.PERSISTED_LEXER_RESOURCE), lexer);
		    logger.info("done.");

		    logger.info("Creating parser...");
		    Parser parser = ParserFactory.create(grammar);
		    PackageBuilderUtils.persistObject(PackageDirectory.RES,
			    new File(TestLanguageGrammar.PERSISTED_PARSER_RESOURCE), parser);
		    logger.info("done.");
		}
	    }
	} catch (GrammarException | IOException | LexerFactoryException | ParserFactoryException e) {
	    e.printStackTrace();
	}
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy