package esl.cuenet.mapper.parsers;
import esl.cuenet.mapper.parser.MappingParser;
import esl.cuenet.mapper.parser.ParseException;
import esl.cuenet.mapper.tree.IParseTree;
import esl.cuenet.mapper.tree.IParseTreeCreator;
import org.junit.Test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.StringReader;
public class MappingParserTest {
public class ParseTreeCreatorTest implements IParseTreeCreator {
@Override
public void addOperator(String label) {
System.out.println("Operator: " + label);
}
@Override
public void addOperand(String operandValue) {
System.out.println("Operand: " + operandValue);
}
@Override
public void startSExpression() {
}
@Override
public void endSExpression() {
}
@Override
public void eof() {
}
@Override
public IParseTree getTree() {
return null;
}
}
@Test
public void doTest() throws ParseException {
String example1 = "(:axioms\n" +
" (:map @yale_bib:book book)\n" +
" (:map @cmu_bib:book book))";
String example2 = "(:axioms\n" +
" (:map @yale_bib:Book Book)\n" +
" (:map @cmu_bib:Book Book))";
String example3 = "(:name (:lookup first-name) (:lookup last-name))";
parseFile("./src/main/javacc/test/test.2.map");
test(example1);
test(example2);
test(example3);
}
private void test(String example) throws ParseException {
MappingParser parser = null;
parser = new MappingParser( new StringReader(example));
parser.setIParseTreeCreator(new ParseTreeCreatorTest());
parser.parse_document();
System.out.println("");
}
public void parseFile(String filename) throws ParseException {
try {
MappingParser parser = new MappingParser( new FileInputStream(filename));
parser.setIParseTreeCreator(new ParseTreeCreatorTest());
parser.parse_document();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println("");
}
}