- kill Bad nodes from the keep-alive list: these arise from the new
[libfirm] / ir / debug / debugger.c
index 66785b3..91bfc23 100644 (file)
@@ -36,7 +36,6 @@
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 
-#define strncasecmp strnicmp
 #endif
 
 #ifdef HAVE_STDLIB_H
@@ -64,6 +63,7 @@
 #include "irdump.h"
 #include "iredges_t.h"
 #include "debug.h"
+#include "error.h"
 
 #ifdef _WIN32
 /* Break into the debugger. The Win32 way. */
@@ -436,9 +436,9 @@ static const char *reason_str(bp_reasons_t reason)
        case BP_ON_REMIRG:   return "removing IRG";
        case BP_ON_NEW_ENT:  return "entity creation";
        case BP_ON_NEW_TYPE: return "type creation";
-       default:             assert(0);
+       case BP_MAX_REASON:  break;
        }
-       return "unknown";
+       panic("unsupported reason");
 }  /* reason_str */
 
 /**
@@ -765,26 +765,25 @@ typedef struct find_env {
 /**
  * Type-walker: Find an entity with given number.
  */
-static void check_ent_nr(type_or_ent *tore, void *ctx) {
-       ir_entity *ent = (ir_entity *)tore;
+static void check_ent_nr(type_or_ent tore, void *ctx) {
        find_env_t *env = ctx;
 
-       if (is_entity(ent))
-               if (get_entity_nr(ent) == env->u.nr) {
-                       env->res = ent;
+       if (is_entity(tore.ent)) {
+               if (get_entity_nr(tore.ent) == env->u.nr) {
+                       env->res = tore.ent;
                }
+       }
 }  /* check_ent_nr */
 
 /**
  * Type-walker: Find an entity with given name.
  */
-static void check_ent_name(type_or_ent *tore, void *ctx) {
-       ir_entity *ent = (ir_entity *)tore;
+static void check_ent_name(type_or_ent tore, void *ctx) {
        find_env_t *env = ctx;
 
-       if (is_entity(ent))
-               if (strcmp(get_entity_name(ent), env->u.name) == 0) {
-                       env->res = ent;
+       if (is_entity(tore.ent))
+               if (strcmp(get_entity_name(tore.ent), env->u.name) == 0) {
+                       env->res = tore.ent;
                }
 }  /* check_ent_name */
 
@@ -815,11 +814,11 @@ static ir_entity *find_entity_name(const char *name) {
 /**
  * Search methods for a name.
  */
-static void show_by_name(type_or_ent *tore, void *env) {
+static void show_by_name(type_or_ent tore, void *env) {
        ident *id = (ident *)env;
 
-       if (is_entity(tore)) {
-               ir_entity *ent = (ir_entity *)tore;
+       if (is_entity(tore.ent)) {
+               ir_entity *ent = tore.ent;
 
                if (is_method_entity(ent)) {
                        if (get_entity_ident(ent) == id) {
@@ -843,11 +842,11 @@ static void show_by_name(type_or_ent *tore, void *env) {
 /**
  * Search methods for a ldname.
  */
-static void show_by_ldname(type_or_ent *tore, void *env) {
+static void show_by_ldname(type_or_ent tore, void *env) {
        ident *id = (ident *)env;
 
-       if (is_entity(tore)) {
-               ir_entity *ent = (ir_entity *)tore;
+       if (is_entity(tore.ent)) {
+               ir_entity *ent = tore.ent;
 
                if (is_method_entity(ent)) {
                        if (get_entity_ld_ident(ent) == id) {
@@ -986,34 +985,27 @@ static unsigned get_token(void) {
        lexer.tok_start = lexer.curr_pos - 1;
        if (c == '.' || isalpha(c)) {
                /* command begins here */
-               int len = 0;
+               int         len = 0;
+               const char* tok_start;
 
-               if (c == '.') {
-                       /* skip the dot */
-                       ++lexer.tok_start;
-                       c = next_char();
-               }
                do {
                        c = next_char();
                        ++len;
-               } while (isalpha(c));
+               } while (isgraph(c));
                unput();
 
+               tok_start = lexer.tok_start;
+               if (*tok_start == '.') {
+                       ++tok_start;
+                       --len;
+               }
                for (i = sizeof(reserved)/sizeof(reserved[0]) - 1; i >= 0; --i) {
-                       if (strncasecmp(lexer.tok_start, reserved[i], len) == 0 && reserved[i][len] == '\0')
-                               break;
+                       if (strncasecmp(tok_start, reserved[i], len) == 0 && reserved[i][len] == '\0')
+                               return 256 + i;
                }
-               if (i >= 0)
-                       return 256 + i;
-               return tok_error;
-       } else if (isalpha(c)) {
-               /* identifier */
-               lexer.s = lexer.curr_pos - 1;
 
-               do {
-                       c = next_char();
-               } while (isgraph(c));
-               unput();
+               /* identifier */
+               lexer.s   = lexer.tok_start;
                lexer.len = lexer.curr_pos - lexer.s;
                return tok_identifier;
        } else if (isdigit(c) || c == '-') {