use of de.be4.classicalb.core.parser.analysis.prolog.NodeIdAssignment in project probparsers by bendisposto.
the class RulesProject method printProjectAsPrologTerm.
public void printProjectAsPrologTerm(final IPrologTermOutput pout) {
// parser version
pout.openTerm("parser_version");
pout.printAtom(BParser.getBuildRevision());
pout.closeTerm();
pout.fullstop();
// machine
pout.openTerm("classical_b");
pout.printAtom(MAIN_MACHINE_NAME);
pout.openList();
for (IModel iModel : bModels) {
pout.printAtom(iModel.getPath());
}
pout.closeList();
pout.closeTerm();
pout.fullstop();
NodeIdAssignment tempNodeIdAssignment = parsingBehaviour.isAddLineNumbers() ? this.nodeIdAssignment : new NodeIdAssignment();
for (IModel iModel : bModels) {
iModel.printAsProlog(pout, tempNodeIdAssignment);
}
}
use of de.be4.classicalb.core.parser.analysis.prolog.NodeIdAssignment in project probparsers by bendisposto.
the class RulesParseUnit method printAsProlog.
@Override
public void printAsProlog(final IPrologTermOutput pout, NodeIdAssignment nodeIdMapping) {
assert start != null;
final ClassicalPositionPrinter pprinter = new ClassicalPositionPrinter(nodeIdMapping);
pprinter.printSourcePositions(parsingBehaviour.isAddLineNumbers());
final ASTProlog prolog = new ASTProlog(pout, pprinter);
pout.openTerm("machine");
start.apply(prolog);
pout.closeTerm();
pout.fullstop();
}
use of de.be4.classicalb.core.parser.analysis.prolog.NodeIdAssignment in project probparsers by bendisposto.
the class ClassicalBParser method printAst.
private void printAst(final IPrologTermOutput pto, Start ast, final boolean wrap, final String wrapper) {
NodeIdAssignment na = new NodeIdAssignment();
ast.apply(na);
ClassicalPositionPrinter pprinter = new ClassicalPositionPrinter(na, -1, 0);
final ASTProlog prologPrinter = new ASTProlog(pto, pprinter);
if (wrap) {
pto.openTerm(wrapper);
}
ast.apply(prologPrinter);
if (wrap) {
pto.closeTerm();
}
}
Aggregations