Skip to content

Commit 69eff67

Browse files
authored
Merge pull request #23 from MortenSchou/prepost
Implementation of Pre* and Post*
2 parents f6cd25d + c8c1e28 commit 69eff67

File tree

13 files changed

+1191
-290
lines changed

13 files changed

+1191
-290
lines changed

src/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ include_directories(${Boost_INCLUDE_DIR})
1717
add_executable(aalwines ${HEADER_FILES} main.cpp model/builders/JuniperBuilder.cpp model/builders/PRexBuilder.cpp
1818
model/Router.cpp model/RoutingTable.cpp model/Query.cpp model/Network.cpp model/filter.cpp model/NetworkPDAFactory.cpp
1919
${BISON_bparser_OUTPUTS} ${FLEX_flexer_OUTPUTS} query/QueryBuilder.cpp
20-
pdaaal/model/PDA.cpp pdaaal/engine/Moped.cpp pdaaal/engine/PostStar.cpp
20+
pdaaal/model/PDA.cpp pdaaal/engine/Moped.cpp pdaaal/engine/PAutomaton.cpp
2121
utils/parsing.cpp utils/system.cpp)
2222
add_dependencies(aalwines ptrie-ext rapidxml-ext)
2323
target_link_libraries(aalwines PRIVATE ${Boost_LIBRARIES})

src/main.cpp

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
#include "query/parsererrors.h"
3535
#include "pdaaal/model/PDAFactory.h"
3636
#include "pdaaal/engine/Moped.h"
37-
#include "pdaaal/engine/PostStar.h"
37+
#include "pdaaal/engine/Solver.h"
3838

3939
#include "utils/stopwatch.h"
4040
#include "utils/outcome.h"
@@ -137,7 +137,7 @@ int main(int argc, const char** argv)
137137
exit(-1);
138138
}
139139

140-
if(engine > 2)
140+
if(engine > 3)
141141
{
142142
std::cerr << "Unknown value for --engine : " << engine << std::endl;
143143
exit(-1);
@@ -245,7 +245,7 @@ int main(int argc, const char** argv)
245245
std::cout << "\t\"answers\":{\n";
246246
}
247247
Moped moped;
248-
PostStar post_star;
248+
Solver solver;
249249

250250
for(auto& q : builder._result)
251251
{
@@ -284,6 +284,7 @@ int main(int argc, const char** argv)
284284
verification_time.start();
285285
bool engine_outcome;
286286
bool need_trace = was_dual || get_trace;
287+
Solver::res_type solver_result;
287288
switch(engine)
288289
{
289290
case 1:
@@ -297,17 +298,27 @@ int main(int argc, const char** argv)
297298
}
298299
break;
299300
case 2:
300-
engine_outcome = post_star.verify(pda, need_trace);
301+
solver_result = solver.post_star(pda, need_trace);
302+
engine_outcome = solver_result.first;
301303
verification_time.stop();
302304
if(need_trace && engine_outcome)
303305
{
304-
trace = post_star.get_trace(pda);
306+
trace = solver.get_trace(pda, std::move(solver_result.second));
305307
if(factory->write_json_trace(proof, trace))
306308
result = utils::YES;
307309
}
308310
break;
309311
case 3:
310-
// break;
312+
solver_result = solver.pre_star(pda, need_trace);
313+
engine_outcome = solver_result.first;
314+
verification_time.stop();
315+
if(need_trace && engine_outcome)
316+
{
317+
trace = solver.get_trace(pda, std::move(solver_result.second));
318+
if(factory->write_json_trace(proof, trace))
319+
result = utils::YES;
320+
}
321+
break;
311322
default:
312323
throw base_error("Unsupported --engine value given");
313324
}

0 commit comments

Comments
 (0)