use of de.be4.classicalb.core.parser.node.Start in project prob2 by bendisposto.
the class PredicateConjunctionSplitterTest method testComplexPredicates3.
@Test
public void testComplexPredicates3() throws Exception {
Start parse = BParser.parse("#PREDICATE a=1 & ( b=1 => c = 1 & d=1) & e=1");
PredicateConjunctionSplitter splitter = new PredicateConjunctionSplitter();
parse.apply(splitter);
assertEquals(3, splitter.getPredicates().size());
}
use of de.be4.classicalb.core.parser.node.Start in project prob2 by bendisposto.
the class PredicateConjunctionSplitterTest method testSinglePredicate.
@Test
public void testSinglePredicate() throws Exception {
Start parse = BParser.parse("#PREDICATE a=1");
PredicateConjunctionSplitter splitter = new PredicateConjunctionSplitter();
parse.apply(splitter);
assertEquals(1, splitter.getPredicates().size());
}
use of de.be4.classicalb.core.parser.node.Start in project prob2 by bendisposto.
the class PredicateConjunctionSplitterTest method testComplexPredicates2b.
@Test
public void testComplexPredicates2b() throws Exception {
Start parse = BParser.parse("#PREDICATE #x.(x:NAT & x < 6) & a<6 ");
PredicateConjunctionSplitter splitter = new PredicateConjunctionSplitter();
parse.apply(splitter);
assertEquals(2, splitter.getPredicates().size());
}
use of de.be4.classicalb.core.parser.node.Start in project prob2 by bendisposto.
the class TLAFactory method parseAllMachines.
/**
* Given an {@link Start} ast, {@link File} f, and {@link BParser} bparser,
* all machines are loaded.
*
* @param ast
* {@link Start} representing the abstract syntax tree for the
* machine
* @param f
* {@link File} containing machine
* @param bparser
* {@link BParser} for parsing
* @return {@link RecursiveMachineLoader} rml with all loaded machines
* @throws BCompoundException if the machines could not be loaded
*/
public RecursiveMachineLoader parseAllMachines(final Start ast, final File f, final BParser bparser) throws BCompoundException {
final RecursiveMachineLoader rml = new RecursiveMachineLoader(f.getParent(), bparser.getContentProvider());
rml.loadAllMachines(f, ast, bparser.getDefinitions());
logger.trace("Done parsing '{}'", f.getAbsolutePath());
return rml;
}
use of de.be4.classicalb.core.parser.node.Start in project prob2 by bendisposto.
the class TLAFactory method parseFile.
/**
* Parse a file into an AST {@link Start}.
*
* @param model
* {@link File} containing B machine
* @param bparser
* {@link BParser} for parsing
* @return {@link Start} AST after parsing model with {@link BParser}
* bparser
* @throws IOException if an I/O error occurred
* @throws BCompoundException if the file could not be parsed
*/
public Start parseFile(final File model, final BParser bparser) throws IOException, BCompoundException {
logger.trace("Parsing main file '{}'", model.getAbsolutePath());
Start ast = null;
ast = bparser.parseFile(model, false);
return ast;
}
Aggregations