use of de.prob.prolog.output.PrologTermStringOutput in project probparsers by bendisposto.
the class CliBParser method parseTemporalFormula.
private static void parseTemporalFormula(BufferedReader in, final TemporalLogicParser<?> parser) throws IOException {
String theFormula;
PrologTermStringOutput strOutput = new PrologTermStringOutput();
theFormula = in.readLine();
try {
final PrologTerm term = parser.generatePrologTerm(theFormula, null);
strOutput.openTerm("ltl").printTerm(term).closeTerm();
} catch (LtlParseException e) {
strOutput.openTerm("syntax_error").printAtom(e.getLocalizedMessage()).closeTerm();
}
strOutput.fullstop();
// A Friendly Reminder: strOutput includes a newline!
print(strOutput.toString());
}
use of de.prob.prolog.output.PrologTermStringOutput in project probparsers by bendisposto.
the class CliBParser method parseFormula.
private static void parseFormula(String theFormula, IDefinitions context) {
try {
BParser parser = new BParser();
parser.setDefinitions(context);
Start start = parser.parse(theFormula, false);
PrologTermStringOutput strOutput = new PrologTermStringOutput();
NodeIdAssignment na = new NodeIdAssignment();
start.apply(na);
ClassicalPositionPrinter pprinter = new ClassicalPositionPrinter(na, -1, 0);
ASTProlog printer = new ASTProlog(strOutput, pprinter);
start.apply(printer);
strOutput.fullstop();
// A Friendly Reminder: strOutput includes a newline!
String output = strOutput.toString();
print(output);
} catch (NullPointerException e) {
// Not Parseable - Sadly, calling e.getLocalizedMessage() on the
// NullPointerException returns NULL itself, thus triggering another
// NullPointerException in the catch statement. Therefore we need a
// second catch statement with a special case for the
// NullPointerException instead of catching a general Exception
// print("EXCEPTION NullPointerException" + System.lineSeparator());
PrologTermStringOutput strOutput = new PrologTermStringOutput();
strOutput.openTerm("exception").printAtom("NullPointerException").closeTerm();
strOutput.fullstop();
strOutput.flush();
String output = strOutput.toString();
print(output);
} catch (BCompoundException e) {
PrologExceptionPrinter.printException(socketOutputStream, e, false, true);
}
}
use of de.prob.prolog.output.PrologTermStringOutput in project probparsers by bendisposto.
the class CliBParser method parseExtendedFormula.
private static void parseExtendedFormula(String theFormula, IDefinitions context) {
try {
BParser parser = new BParser();
parser.setDefinitions(context);
Start start = parser.eparse(theFormula, context);
PrologTermStringOutput strOutput = new PrologTermStringOutput();
NodeIdAssignment na = new NodeIdAssignment();
start.apply(na);
ClassicalPositionPrinter pprinter = new ClassicalPositionPrinter(na, -1, 0);
ASTProlog printer = new ASTProlog(strOutput, pprinter);
start.apply(printer);
strOutput.fullstop();
// A Friendly Reminder: strOutput includes a newline!
print(strOutput.toString());
} catch (NullPointerException e) {
// Not Parseable - Sadly, calling e.getLocalizedMessage() on the
// NullPointerException returns NULL itself, thus triggering another
// NullPointerException in the catch statement. Therefore we need a
// second catch statement with a special case for the
// NullPointerException instead of catching a general Exception
// print("EXCEPTION NullPointerException" + System.lineSeparator());
PrologTermStringOutput strOutput = new PrologTermStringOutput();
strOutput.openTerm("exception").printAtom("NullPointerException").closeTerm();
strOutput.fullstop();
strOutput.flush();
print(strOutput.toString());
} catch (BCompoundException e) {
PrologExceptionPrinter.printException(socketOutputStream, e, false, true);
} catch (LexerException e) {
PrologTermStringOutput strOutput = new PrologTermStringOutput();
strOutput.openTerm("exception").printAtom(e.getLocalizedMessage()).closeTerm();
strOutput.fullstop();
strOutput.flush();
print(strOutput.toString());
} catch (IOException e) {
PrologExceptionPrinter.printException(socketOutputStream, e, theFormula, false, true);
}
}
use of de.prob.prolog.output.PrologTermStringOutput in project probparsers by bendisposto.
the class ConsoleTest method testFormulaOutput.
@Test
public void testFormulaOutput() throws BCompoundException {
Start start = BParser.parse("#FORMULA 1+1");
PrologTermStringOutput strOutput = new PrologTermStringOutput();
ASTProlog printer = new ASTProlog(strOutput, null);
start.apply(printer);
strOutput.fullstop();
// A Friendly Reminder: strOutput includes a newline!
String output = strOutput.toString().trim();
assertEquals(output, "add(none,integer(none,1),integer(none,1)).");
}
use of de.prob.prolog.output.PrologTermStringOutput in project probparsers by bendisposto.
the class CreateFreetypeTest method testManualFreetypeCreation.
@Test
public void testManualFreetypeCreation() {
final PrologTermStringOutput pto = new PrologTermStringOutput();
printProlog(pto);
final String result = pto.toString();
final String ftc1 = "constructor(none,myBool,bool_set(none))";
final String ftc2 = "constructor(none,myInt,int_set(none))";
final String ftc3 = "element(none,nothing)";
final String freetypeStr = "freetype(none,ft,[" + ftc1 + "," + ftc2 + "," + ftc3 + "])";
final String expectedPart = "freetypes(none,[" + freetypeStr + "])";
Assert.assertTrue("Freetype contained", result.contains(expectedPart));
}
Aggregations