3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

fixed more problems in the new param framework

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
Leonardo de Moura 2012-12-03 15:02:34 -08:00
parent d634c945bf
commit 6d7d205e13
30 changed files with 185 additions and 168 deletions

View file

@ -22,6 +22,7 @@ Revision History:
#endif
#include<iostream>
#include"str_hashtable.h"
#include"z3_exception.h"
volatile bool g_enable_assertions = true;
@ -73,7 +74,7 @@ void invoke_gdb() {
char buffer[1024];
int * x = 0;
for (;;) {
std::cerr << "(C)ontinue, (A)bort, (S)top, Invoke (G)DB\n";
std::cerr << "(C)ontinue, (A)bort, (S)top, (T)hrow exception, Invoke (G)DB\n";
char result;
std::cin >> result;
switch(result) {
@ -88,6 +89,9 @@ void invoke_gdb() {
// force seg fault...
*x = 0;
return;
case 't':
case 'T':
throw default_exception("assertion violation");
case 'G':
case 'g':
sprintf(buffer, "gdb -nw /proc/%d/exe %d", getpid(), getpid());

View file

@ -21,6 +21,29 @@ Notes:
#include"symbol.h"
#include"dictionary.h"
std::string norm_param_name(char const * n) {
if (n == 0)
return "_";
if (*n == ':')
n++;
std::string r = n;
unsigned sz = r.size();
if (sz == 0)
return "_";
for (unsigned i = 0; i < sz; i++) {
char curr = r[i];
if ('A' <= curr && curr <= 'Z')
r[i] = curr - 'A' + 'a';
else if (curr == '-' || curr == ':')
r[i] = '_';
}
return r;
}
std::string norm_param_name(symbol const & n) {
return norm_param_name(n.bare_str());
}
struct param_descrs::imp {
struct info {
param_kind m_kind;

View file

@ -22,6 +22,9 @@ Notes:
#include"cmd_context_types.h"
#include"vector.h"
std::string norm_param_name(char const * n);
std::string norm_param_name(symbol const & n);
typedef cmd_arg_kind param_kind;
class params;