Index: modules/pt/pt_cparam_config_critcl.tcl ================================================================== --- modules/pt/pt_cparam_config_critcl.tcl +++ modules/pt/pt_cparam_config_critcl.tcl @@ -165,11 +165,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "@@CTAIL@@%d", parserg->counter); + sprintf (parserg->buf, "@@CTAIL@@%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/pt_cparam_config_tea.tcl ================================================================== --- modules/pt/pt_cparam_config_tea.tcl +++ modules/pt/pt_cparam_config_tea.tcl @@ -129,11 +129,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "@@CTAIL@@%d", parserg->counter); + sprintf (parserg->buf, "@@CTAIL@@%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/pt_parse_peg_c.tcl ================================================================== --- modules/pt/pt_parse_peg_c.tcl +++ modules/pt/pt_parse_peg_c.tcl @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -4747,11 +4750,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "peg%d", parserg->counter); + sprintf (parserg->buf, "peg%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/pt_rdengine_c.tcl ================================================================== --- modules/pt/pt_rdengine_c.tcl +++ modules/pt/pt_rdengine_c.tcl @@ -74,11 +74,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) paramg); } paramg->counter ++; - sprintf (paramg->buf, "rde%d", paramg->counter); + sprintf (paramg->buf, "rde%ld", paramg->counter); return paramg->buf; #undef KEY } Index: modules/pt/rde_critcl/m.c ================================================================== --- modules/pt/rde_critcl/m.c +++ modules/pt/rde_critcl/m.c @@ -17,12 +17,12 @@ { /* Syntax: rde amarked * [0] [1] */ - long int mc, i; - long int* mv; + long int mc, i; + void** mv; Tcl_Obj** ov; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; @@ -31,11 +31,11 @@ rde_param_query_amark (p->p, &mc, &mv); ov = NALLOC (mc, Tcl_Obj*); for (i=0; i < mc; i++) { - ov [i] = Tcl_NewIntObj (mv [i]); + ov [i] = Tcl_NewIntObj ((long int) mv [i]); } Tcl_SetObjResult (interp, Tcl_NewListObj (mc, ov)); @@ -278,11 +278,11 @@ /* Syntax: rde lmarked * [0] [1] */ long int lc, i; - void* lv; + void** lv; Tcl_Obj** ov; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; @@ -401,20 +401,20 @@ he != NULL; he = Tcl_NextHashEntry(&hs)) { Tcl_HashSearch hsc; Tcl_HashEntry* hec; - int loc = (int) Tcl_GetHashKey (nc, he); + long int loc = (long int) Tcl_GetHashKey (nc, he); kv [0] = Tcl_NewIntObj (loc); tablePtr = (Tcl_HashTable*) Tcl_GetHashValue (he); for(hec = Tcl_FirstHashEntry(tablePtr, &hsc); hec != NULL; hec = Tcl_NextHashEntry(&hsc)) { - int symid = (int) Tcl_GetHashKey (tablePtr, hec); + long int symid = (long int) Tcl_GetHashKey (tablePtr, hec); const char* sym = rde_param_query_string (p->p, symid); kv [1] = Tcl_NewStringObj (sym,-1); Tcl_ListObjAppendElement (interp, res, @@ -453,21 +453,21 @@ he != NULL; he = Tcl_NextHashEntry(&hs)) { Tcl_HashSearch hsc; Tcl_HashEntry* hec; - int loc = (int) Tcl_GetHashKey (nc, he); + long int loc = (long int) Tcl_GetHashKey (nc, he); kv [0] = Tcl_NewIntObj (loc); tablePtr = (Tcl_HashTable*) Tcl_GetHashValue (he); for(hec = Tcl_FirstHashEntry(tablePtr, &hsc); hec != NULL; hec = Tcl_NextHashEntry(&hsc)) { NC_STATE* scs = Tcl_GetHashValue (hec); - int symid = (int) Tcl_GetHashKey (tablePtr, hec); + long int symid = (long int) Tcl_GetHashKey (tablePtr, hec); const char* sym = rde_param_query_string (p->p, symid); kv [1] = Tcl_NewStringObj (sym,-1); vv [0] = Tcl_NewIntObj (scs->CL); @@ -730,11 +730,11 @@ { /* Syntax: rde i_error_nonterminal SYMBOL * [0] [1] [2] */ - int sym; + long int sym; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -1087,11 +1087,12 @@ { /* Syntax: rde i_symbol_restore SYMBOL * [0] [1] [2] */ - int sym, found; + long int sym; + int found; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -1114,11 +1115,11 @@ { /* Syntax: rde i_symbol_save SYMBOL * [0] [1] [2] */ - int sym; + long int sym; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -1148,11 +1149,11 @@ } if (!rde_param_query_st (p->p)) { rde_param_i_value_clear (p->p); } else { - int sym; + long int sym; /* * We cannot save the interned string id in the Tcl_Obj*, because this * is already taken by the argument of param_I_er_nt aka * i_error_nonterminal, due to literal sharing in procedure bodies. @@ -1195,11 +1196,11 @@ } if (!rde_param_query_st (p->p)) { rde_param_i_value_clear (p->p); } else { - int sym; + long int sym; /* * We cannot save the interned string id in the Tcl_Obj*, because this * is already taken by the argument of param_I_er_nt aka * i_error_nonterminal, due to literal sharing in procedure bodies. @@ -1217,11 +1218,11 @@ { /* Syntax: rde i_input_next MSG * [0] [1] [2] */ - int msg; + long int msg; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "msg"); return TCL_ERROR; } @@ -1288,11 +1289,11 @@ } int param_I_test_char (RDE_STATE p, Tcl_Interp* interp, int objc, Tcl_Obj* CONST* objv) { - int msg; + long int msg; char* ch; /* Syntax: rde i_test_char CHAR * [0] [1] [2] */ @@ -1433,11 +1434,11 @@ } int param_I_test_range (RDE_STATE p, Tcl_Interp* interp, int objc, Tcl_Obj* CONST* objv) { - int msg; + long int msg; char* chs; char* che; /* Syntax: rde i_test_range START END * [0] [1] [2] [3] @@ -1780,11 +1781,11 @@ } int param_SI_next_char (RDE_STATE p, Tcl_Interp* interp, int objc, Tcl_Obj* CONST* objv) { - int msg; + long int msg; char* ch; /* Syntax: rde i_next_char CHAR * [0] [1] [2] */ @@ -1809,11 +1810,11 @@ } int param_SI_next_range (RDE_STATE p, Tcl_Interp* interp, int objc, Tcl_Obj* CONST* objv) { - int msg; + long int msg; char* chs; char* che; /* Syntax: rde i_next_range START END * [0] [1] [2] [3] @@ -1844,11 +1845,11 @@ { /* Syntax: rde si:next_alnum * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -1867,11 +1868,11 @@ { /* Syntax: rde si:next_alpha * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -1890,11 +1891,11 @@ { /* Syntax: rde si:next_ascii * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -1913,11 +1914,11 @@ { /* Syntax: rde si:next_control * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -1936,11 +1937,11 @@ { /* Syntax: rde si:next_ddigit * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -1959,11 +1960,11 @@ { /* Syntax: rde si:next_digit * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -1982,11 +1983,11 @@ { /* Syntax: rde si:next_graph * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -2005,11 +2006,11 @@ { /* Syntax: rde si:next_lower * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -2028,11 +2029,11 @@ { /* Syntax: rde si:next_print * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -2051,11 +2052,11 @@ { /* Syntax: rde si:next_punct * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -2074,11 +2075,11 @@ { /* Syntax: rde si:next_space * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -2097,11 +2098,11 @@ { /* Syntax: rde si:next_upper * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -2120,11 +2121,11 @@ { /* Syntax: rde si:next_wordchar * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -2143,11 +2144,11 @@ { /* Syntax: rde si:next_xdigit * [0] [1] */ - int msg; + long int msg; if (objc != 2) { Tcl_WrongNumArgs (interp, 2, objv, NULL); return TCL_ERROR; } @@ -2310,11 +2311,12 @@ { /* Syntax: rde si:value_symbol_start SYMBOL * [0] [1] [2] */ - int sym, found; + long int sym; + int found; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -2345,11 +2347,12 @@ { /* Syntax: rde si:value_void_symbol_start SYMBOL * [0] [1] [2] */ - int sym, found; + long int sym; + int found; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -2377,11 +2380,12 @@ { /* Syntax: rde si:void_symbol_start SYMBOL * [0] [1] [2] */ - int sym, found; + long int sym; + int found; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -2411,11 +2415,12 @@ { /* Syntax: rde si:void_void_symbol_start SYMBOL * [0] [1] [2] */ - int sym, found; + long int sym; + int found; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -2442,11 +2447,11 @@ { /* Syntax: rde si:reduce_symbol_end SYMBOL * [0] [1] [2] */ - int sym, msg; + long int sym, msg; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -2494,11 +2499,11 @@ { /* Syntax: rde si:void_leaf_symbol_end SYMBOL * [0] [1] [2] */ - int sym, msg; + long int sym, msg; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -2545,11 +2550,11 @@ { /* Syntax: rde si:value_leaf_symbol_end SYMBOL * [0] [1] [2] */ - int sym, msg; + long int sym, msg; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -2597,11 +2602,11 @@ { /* Syntax: rde si:value_clear_symbol_end SYMBOL * [0] [1] [2] */ - int sym, msg; + long int sym, msg; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -2640,11 +2645,11 @@ { /* Syntax: rde si:void_clear_symbol_end SYMBOL * [0] [1] [2] */ - int sym, msg; + long int sym, msg; if (objc != 3) { Tcl_WrongNumArgs (interp, 2, objv, "symbol"); return TCL_ERROR; } @@ -2678,11 +2683,12 @@ } int param_SI_next_str (RDE_STATE p, Tcl_Interp* interp, int objc, Tcl_Obj* CONST* objv) { - int msg, len, i; + long int msg; + int len, i; char* str; /* Syntax: rde i_next_char CHAR * [0] [1] [2] */ @@ -2704,11 +2710,12 @@ } int param_SI_next_class (RDE_STATE p, Tcl_Interp* interp, int objc, Tcl_Obj* CONST* objv) { - int msg, len, i; + long int msg; + int len, i; char* class; /* Syntax: rde i_next_char CHAR * [0] [1] [2] */ Index: modules/pt/rde_critcl/ot.c ================================================================== --- modules/pt/rde_critcl/ot.c +++ modules/pt/rde_critcl/ot.c @@ -28,14 +28,14 @@ /* * = = == === ===== ======== ============= ===================== */ -int -rde_ot_intern (Tcl_Obj* obj, RDE_STATE p, char* pfx, char* sfx) +long int +rde_ot_intern (Tcl_Obj* obj, RDE_STATE p, const char* pfx, const char* sfx) { - int id; + long int id; RDE_STRING* rs; TRACE (("rde_ot_intern (%p, '%s','%s' of %p = '%s')", p, pfx, sfx, obj, Tcl_GetString(obj))); /* Index: modules/pt/rde_critcl/ot.h ================================================================== --- modules/pt/rde_critcl/ot.h +++ modules/pt/rde_critcl/ot.h @@ -7,11 +7,12 @@ #define _RDE_DS_OT_H 1 #include "tcl.h" #include /* State declarations */ -int rde_ot_intern (Tcl_Obj* obj, RDE_STATE p, char* pfx, char* sfx); +long int rde_ot_intern (Tcl_Obj* obj, RDE_STATE p, + const char* pfx, const char* sfx); #endif /* _RDE_DS_OT_H */ /* * Local Variables: Index: modules/pt/rde_critcl/p.c ================================================================== --- modules/pt/rde_critcl/p.c +++ modules/pt/rde_critcl/p.c @@ -110,34 +110,35 @@ p->c = c; RETURNVOID; } -int +long int param_intern (RDE_STATE p, char* literal) { - int res, isnew; + long int res; + int isnew; Tcl_HashEntry* hPtr; ENTER ("param_intern"); TRACE (("RDE_STATE %p",p)); TRACE (("CHAR* '%s'",literal)); hPtr = Tcl_FindHashEntry (&p->str, literal); if (hPtr) { - res = (int) Tcl_GetHashValue (hPtr); + res = (long int) Tcl_GetHashValue (hPtr); RETURN("CACHED %d",res); } hPtr = Tcl_CreateHashEntry(&p->str, literal, &isnew); ASSERT (isnew, "Should have found entry"); Tcl_SetHashValue (hPtr, p->numstr); if (p->numstr >= p->maxnum) { - int new; - char** str; + long int new; + char** str; new = 2 * (p->maxnum ? p->maxnum : 8); TRACE (("extend to %d strings",new)); str = (char**) ckrealloc ((char*) p->string, new * sizeof(char*)); Index: modules/pt/rde_critcl/pInt.h ================================================================== --- modules/pt/rde_critcl/pInt.h +++ modules/pt/rde_critcl/pInt.h @@ -26,20 +26,20 @@ */ /* And the counter mapping from ids to strings, this is handed to the * PARAM for use. */ - int maxnum; /* NOTE -- */ - int numstr; /* This is, essentially, an RDE_STACK (char* elements) */ - char** string; /* Convert over to that instead of replicating the code */ + long int maxnum; /* NOTE -- */ + long int numstr; /* This is, essentially, an RDE_STACK (char* elements) */ + char** string; /* Convert over to that instead of replicating the code */ #ifdef RDE_TRACE int icount; /* Instruction counter, when tracing */ #endif } RDE_STATE_; -int param_intern (RDE_STATE p, char* literal); +long int param_intern (RDE_STATE p, char* literal); #endif /* _P_H */ /* * Local Variables: Index: modules/pt/rde_critcl/param.c ================================================================== --- modules/pt/rde_critcl/param.c +++ modules/pt/rde_critcl/param.c @@ -86,11 +86,11 @@ * = = == === ===== ======== ============= ===================== */ static void ast_node_free (void* n); static void error_state_free (void* es); -static void error_set (RDE_PARAM p, int s); +static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); @@ -301,13 +301,13 @@ { return p->clientData; } SCOPE void -rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) +rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { @@ -354,23 +354,23 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); /* * Note: We are peeking inside the (message) stack here and are * modifying it in place. This doesn't matter, we are using the stack * code for convenience, not for the ordering. */ - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); /* * Convert message ids to strings. We ignore duplicates, by comparing * to the last processed id. Here the sorting (see above) comes into * play, we know that duplicates are bunched together in runs, making @@ -380,15 +380,15 @@ mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; /* inlined query_string */ + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; /* inlined query_string */ ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -484,11 +484,11 @@ ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); @@ -501,11 +501,11 @@ long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); @@ -549,11 +549,11 @@ { ER_CLEAR (p); } SCOPE void -rde_param_i_error_nonterminal (RDE_PARAM p, int s) +rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { /* * Disabled. Generate only low-level errors until we have worked out how * to integrate symbol information with them. Do not forget where this * instruction is inlined - No such exist, places using the instruction @@ -656,11 +656,11 @@ rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void -error_set (RDE_PARAM p, int s) +error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; @@ -718,11 +718,11 @@ /* * = = == === ===== ======== ============= ===================== */ SCOPE void -rde_param_i_input_next (RDE_PARAM p, int m) +rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); @@ -800,11 +800,11 @@ /* * = = == === ===== ======== ============= ===================== */ SCOPE int -rde_param_i_symbol_restore (RDE_PARAM p, int s) +rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -839,11 +839,11 @@ return 1; } SCOPE void -rde_param_i_symbol_save (RDE_PARAM p, int s) +rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -943,11 +943,11 @@ { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void -rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) +rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; @@ -994,11 +994,11 @@ { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void -rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) +rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && @@ -1085,11 +1085,11 @@ { SV_CLEAR (p); } SCOPE void -rde_param_i_value_leaf (RDE_PARAM p, int s) +rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); @@ -1105,11 +1105,11 @@ SV_SET (p, newsv); } SCOPE void -rde_param_i_value_reduce (RDE_PARAM p, int s) +rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1151,25 +1151,33 @@ */ static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); + /* a, b = pointers to element, as void*. + * Actual element type is (void*), and + * actually stored data is (long int). + */ - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + const void** ael = (const void**) a; + const void** bel = (const void**) b; + + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } /* * = = == === ===== ======== ============= ===================== * == Super Instructions. */ SCOPE int -rde_param_i_symbol_start (RDE_PARAM p, int s) +rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1180,11 +1188,11 @@ rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int -rde_param_i_symbol_start_d (RDE_PARAM p, int s) +rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1196,30 +1204,30 @@ rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int -rde_param_i_symbol_void_start (RDE_PARAM p, int s) +rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int -rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) +rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void -rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) +rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1236,11 +1244,11 @@ Tcl_IncrRefCount (p->SV); } } SCOPE void -rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) +rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1264,11 @@ Tcl_IncrRefCount (p->SV); } } SCOPE void -rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) +rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1277,21 +1285,21 @@ Tcl_IncrRefCount (p->SV); } } SCOPE void -rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) +rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void -rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) +rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); @@ -1302,131 +1310,131 @@ /* * = = == === ===== ======== ============= ===================== */ SCOPE void -rde_param_i_next_char (RDE_PARAM p, char* c, int m) +rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void -rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) +rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void -rde_param_i_next_alnum (RDE_PARAM p, int m) +rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void -rde_param_i_next_alpha (RDE_PARAM p, int m) +rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void -rde_param_i_next_ascii (RDE_PARAM p, int m) +rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void -rde_param_i_next_control (RDE_PARAM p, int m) +rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void -rde_param_i_next_ddigit (RDE_PARAM p, int m) +rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void -rde_param_i_next_digit (RDE_PARAM p, int m) +rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void -rde_param_i_next_graph (RDE_PARAM p, int m) +rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void -rde_param_i_next_lower (RDE_PARAM p, int m) +rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void -rde_param_i_next_print (RDE_PARAM p, int m) +rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void -rde_param_i_next_punct (RDE_PARAM p, int m) +rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void -rde_param_i_next_space (RDE_PARAM p, int m) +rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void -rde_param_i_next_upper (RDE_PARAM p, int m) +rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void -rde_param_i_next_wordchar (RDE_PARAM p, int m) +rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void -rde_param_i_next_xdigit (RDE_PARAM p, int m) +rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1523,11 +1531,11 @@ { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1612,11 +1620,11 @@ return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } @@ -1670,11 +1678,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } @@ -1691,11 +1699,11 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } @@ -1707,11 +1715,11 @@ /* * = = == === ===== ======== ============= ===================== */ SCOPE void -rde_param_i_next_str (RDE_PARAM p, const char* str, int m) +rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; /* Future: Place match string into a shared table of constants, like error * messages, indexed by code. Precomputed length information. @@ -1741,11 +1749,11 @@ str = Tcl_UtfNext (str); } } SCOPE void -rde_param_i_next_class (RDE_PARAM p, const char* class, int m) +rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { Index: modules/pt/rde_critcl/param.h ================================================================== --- modules/pt/rde_critcl/param.h +++ modules/pt/rde_critcl/param.h @@ -43,11 +43,11 @@ /* Accessors */ SCOPE ClientData rde_param_query_clientdata (RDE_PARAM p); -SCOPE void rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv); +SCOPE void rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv); SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av); SCOPE const char* rde_param_query_in (RDE_PARAM p); SCOPE const char* rde_param_query_cc (RDE_PARAM p, long int* len); SCOPE int rde_param_query_cl (RDE_PARAM p); SCOPE const ERROR_STATE* rde_param_query_er (RDE_PARAM p); @@ -70,30 +70,30 @@ SCOPE void rde_param_i_ast_push (RDE_PARAM p); SCOPE void rde_param_i_ast_rewind (RDE_PARAM p); SCOPE void rde_param_i_ast_value_push (RDE_PARAM p); SCOPE void rde_param_i_error_clear (RDE_PARAM p); -SCOPE void rde_param_i_error_nonterminal (RDE_PARAM p, int s); +SCOPE void rde_param_i_error_nonterminal (RDE_PARAM p, long int s); SCOPE void rde_param_i_error_pop_merge (RDE_PARAM p); SCOPE void rde_param_i_error_push (RDE_PARAM p); SCOPE void rde_param_i_loc_pop_discard (RDE_PARAM p); SCOPE void rde_param_i_loc_pop_rewind (RDE_PARAM p); SCOPE void rde_param_i_loc_push (RDE_PARAM p); SCOPE void rde_param_i_loc_rewind (RDE_PARAM p); -SCOPE void rde_param_i_input_next (RDE_PARAM p, int m); +SCOPE void rde_param_i_input_next (RDE_PARAM p, long int m); SCOPE void rde_param_i_status_fail (RDE_PARAM p); SCOPE void rde_param_i_status_ok (RDE_PARAM p); SCOPE void rde_param_i_status_negate (RDE_PARAM p); -SCOPE int rde_param_i_symbol_restore (RDE_PARAM p, int s); -SCOPE void rde_param_i_symbol_save (RDE_PARAM p, int s); +SCOPE int rde_param_i_symbol_restore (RDE_PARAM p, long int s); +SCOPE void rde_param_i_symbol_save (RDE_PARAM p, long int s); -SCOPE void rde_param_i_test_char (RDE_PARAM p, const char* c, int m); -SCOPE void rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int m); +SCOPE void rde_param_i_test_char (RDE_PARAM p, const char* c, long int m); +SCOPE void rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int m); SCOPE void rde_param_i_test_alnum (RDE_PARAM p); SCOPE void rde_param_i_test_alpha (RDE_PARAM p); SCOPE void rde_param_i_test_ascii (RDE_PARAM p); SCOPE void rde_param_i_test_control (RDE_PARAM p); @@ -107,44 +107,44 @@ SCOPE void rde_param_i_test_upper (RDE_PARAM p); SCOPE void rde_param_i_test_wordchar (RDE_PARAM p); SCOPE void rde_param_i_test_xdigit (RDE_PARAM p); SCOPE void rde_param_i_value_clear (RDE_PARAM p); -SCOPE void rde_param_i_value_leaf (RDE_PARAM p, int s); -SCOPE void rde_param_i_value_reduce (RDE_PARAM p, int s); +SCOPE void rde_param_i_value_leaf (RDE_PARAM p, long int s); +SCOPE void rde_param_i_value_reduce (RDE_PARAM p, long int s); /* Super Instructions - Aggregated common instruction sequences. */ -SCOPE int rde_param_i_symbol_start (RDE_PARAM p, int s); -SCOPE int rde_param_i_symbol_start_d (RDE_PARAM p, int s); -SCOPE int rde_param_i_symbol_void_start (RDE_PARAM p, int s); -SCOPE int rde_param_i_symbol_void_start_d (RDE_PARAM p, int s); - -SCOPE void rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m); -SCOPE void rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m); -SCOPE void rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m); -SCOPE void rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m); -SCOPE void rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m); - -SCOPE void rde_param_i_next_char (RDE_PARAM p, char* c, int m); -SCOPE void rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m); - -SCOPE void rde_param_i_next_alnum (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_alpha (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_ascii (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_control (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_ddigit (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_digit (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_graph (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_lower (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_print (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_punct (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_space (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_upper (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_wordchar (RDE_PARAM p, int m); -SCOPE void rde_param_i_next_xdigit (RDE_PARAM p, int m); +SCOPE int rde_param_i_symbol_start (RDE_PARAM p, long int s); +SCOPE int rde_param_i_symbol_start_d (RDE_PARAM p, long int s); +SCOPE int rde_param_i_symbol_void_start (RDE_PARAM p, long int s); +SCOPE int rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s); + +SCOPE void rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m); +SCOPE void rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m); +SCOPE void rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m); +SCOPE void rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m); +SCOPE void rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m); + +SCOPE void rde_param_i_next_char (RDE_PARAM p, const char* c, long int m); +SCOPE void rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m); + +SCOPE void rde_param_i_next_alnum (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_alpha (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_ascii (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_control (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_ddigit (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_digit (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_graph (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_lower (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_print (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_punct (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_space (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_upper (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_wordchar (RDE_PARAM p, long int m); +SCOPE void rde_param_i_next_xdigit (RDE_PARAM p, long int m); SCOPE void rde_param_i_notahead_start_d (RDE_PARAM p); SCOPE void rde_param_i_notahead_exit_d (RDE_PARAM p); SCOPE void rde_param_i_notahead_exit (RDE_PARAM p); @@ -166,12 +166,12 @@ SCOPE int rde_param_i_bra_void2void (RDE_PARAM p); SCOPE int rde_param_i_bra_void2value (RDE_PARAM p); SCOPE int rde_param_i_bra_value2void (RDE_PARAM p); SCOPE int rde_param_i_bra_value2value (RDE_PARAM p); -SCOPE void rde_param_i_next_str (RDE_PARAM p, const char* str, int m); -SCOPE void rde_param_i_next_class (RDE_PARAM p, const char* class, int m); +SCOPE void rde_param_i_next_str (RDE_PARAM p, const char* str, long int m); +SCOPE void rde_param_i_next_class (RDE_PARAM p, const char* class, long int m); /* SKIP END */ #endif /* _RDE_DS_PARAM_H */ /* Index: modules/pt/rde_critcl/tc.c ================================================================== --- modules/pt/rde_critcl/tc.c +++ modules/pt/rde_critcl/tc.c @@ -121,21 +121,21 @@ SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; + void** ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); @@ -147,22 +147,22 @@ SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; + void** ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); Index: modules/pt/tests/data/ok/peg_cparam-critcl/0_basic_arithmetic ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/0_basic_arithmetic +++ modules/pt/tests/data/ok/peg_cparam-critcl/0_basic_arithmetic @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -2145,11 +2148,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-critcl/10_notahead ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/10_notahead +++ modules/pt/tests/data/ok/peg_cparam-critcl/10_notahead @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1834,11 +1837,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-critcl/11_epsilon ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/11_epsilon +++ modules/pt/tests/data/ok/peg_cparam-critcl/11_epsilon @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1798,11 +1801,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-critcl/1_functions ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/1_functions +++ modules/pt/tests/data/ok/peg_cparam-critcl/1_functions @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1859,11 +1862,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-critcl/2_fun_arithmetic ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/2_fun_arithmetic +++ modules/pt/tests/data/ok/peg_cparam-critcl/2_fun_arithmetic @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -2208,11 +2211,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-critcl/3_peg_itself ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/3_peg_itself +++ modules/pt/tests/data/ok/peg_cparam-critcl/3_peg_itself @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -4747,11 +4750,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-critcl/4_choice ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/4_choice +++ modules/pt/tests/data/ok/peg_cparam-critcl/4_choice @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1782,11 +1785,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-critcl/5_sequence ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/5_sequence +++ modules/pt/tests/data/ok/peg_cparam-critcl/5_sequence @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1782,11 +1785,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-critcl/6_optional ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/6_optional +++ modules/pt/tests/data/ok/peg_cparam-critcl/6_optional @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1795,11 +1798,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-critcl/7_kleene ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/7_kleene +++ modules/pt/tests/data/ok/peg_cparam-critcl/7_kleene @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1797,11 +1800,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-critcl/8_pkleene ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/8_pkleene +++ modules/pt/tests/data/ok/peg_cparam-critcl/8_pkleene @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1800,11 +1803,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-critcl/9_ahead ================================================================== --- modules/pt/tests/data/ok/peg_cparam-critcl/9_ahead +++ modules/pt/tests/data/ok/peg_cparam-critcl/9_ahead @@ -417,18 +417,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -436,19 +436,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -497,11 +497,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -650,13 +650,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -693,25 +693,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -780,11 +780,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -793,11 +793,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -828,11 +828,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -884,11 +884,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -926,11 +926,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -972,11 +972,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -995,11 +995,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1066,11 +1066,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1108,11 +1108,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1177,11 +1177,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1191,11 +1191,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1223,18 +1223,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1243,11 +1246,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1257,26 +1260,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1289,11 +1292,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1305,11 +1308,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1322,133 +1325,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1525,11 +1528,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1593,11 +1596,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1636,11 +1639,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1652,19 +1655,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1681,11 +1684,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1834,11 +1837,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/0_basic_arithmetic ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/0_basic_arithmetic +++ modules/pt/tests/data/ok/peg_cparam-tea/0_basic_arithmetic @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -2095,11 +2098,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/10_notahead ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/10_notahead +++ modules/pt/tests/data/ok/peg_cparam-tea/10_notahead @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1784,11 +1787,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/11_epsilon ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/11_epsilon +++ modules/pt/tests/data/ok/peg_cparam-tea/11_epsilon @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1748,11 +1751,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/1_functions ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/1_functions +++ modules/pt/tests/data/ok/peg_cparam-tea/1_functions @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1809,11 +1812,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/2_fun_arithmetic ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/2_fun_arithmetic +++ modules/pt/tests/data/ok/peg_cparam-tea/2_fun_arithmetic @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -2158,11 +2161,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/3_peg_itself ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/3_peg_itself +++ modules/pt/tests/data/ok/peg_cparam-tea/3_peg_itself @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -4697,11 +4700,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/4_choice ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/4_choice +++ modules/pt/tests/data/ok/peg_cparam-tea/4_choice @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1732,11 +1735,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/5_sequence ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/5_sequence +++ modules/pt/tests/data/ok/peg_cparam-tea/5_sequence @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1732,11 +1735,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/6_optional ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/6_optional +++ modules/pt/tests/data/ok/peg_cparam-tea/6_optional @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1745,11 +1748,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/7_kleene ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/7_kleene +++ modules/pt/tests/data/ok/peg_cparam-tea/7_kleene @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1747,11 +1750,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/8_pkleene ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/8_pkleene +++ modules/pt/tests/data/ok/peg_cparam-tea/8_pkleene @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1750,11 +1753,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void Index: modules/pt/tests/data/ok/peg_cparam-tea/9_ahead ================================================================== --- modules/pt/tests/data/ok/peg_cparam-tea/9_ahead +++ modules/pt/tests/data/ok/peg_cparam-tea/9_ahead @@ -384,18 +384,18 @@ } SCOPE void rde_tc_get (RDE_TC tc, int at, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); - off = ov [at]; + off = (long int) ov [at]; if ((at+1) == oc) { end = tc->num; } else { - end = ov [at+1]; + end = (long int) ov [at+1]; } TRACE (("rde_tc_get (RDE_TC %p, @ %d) => %d.[%d ... %d]/%d",tc,at,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -403,19 +403,19 @@ } SCOPE void rde_tc_get_s (RDE_TC tc, int at, int last, char** ch, long int* len) { long int oc, off, top, end; - long int* ov; - rde_stack_get (tc->off, &oc, (void***) &ov); + void** ov; + rde_stack_get (tc->off, &oc, &ov); ASSERT_BOUNDS(at,oc); ASSERT_BOUNDS(last,oc); - off = ov [at]; + off = (long int) ov [at]; if ((last+1) == oc) { end = tc->num; } else { - end = ov [last+1]; + end = (long int) ov [last+1]; } TRACE (("rde_tc_get_s (RDE_TC %p, @ %d .. %d) => %d.[%d ... %d]/%d",tc,at,last,end-off,off,end-1,tc->num)); ASSERT_BOUNDS(off,tc->num); ASSERT_BOUNDS(end-1,tc->num); *ch = tc->str + off; @@ -464,11 +464,11 @@ tc_wordchar, tc_xdigit } test_class_id; static void ast_node_free (void* n); static void error_state_free (void* es); - static void error_set (RDE_PARAM p, int s); + static void error_set (RDE_PARAM p, long int s); static void nc_clear (RDE_PARAM p); static int UniCharIsAscii (int character); static int UniCharIsHexDigit (int character); static int UniCharIsDecDigit (int character); static void test_class (RDE_PARAM p, UniCharClass class, test_class_id id); @@ -617,13 +617,13 @@ rde_param_query_clientdata (RDE_PARAM p) { return p->clientData; } SCOPE void - rde_param_query_amark (RDE_PARAM p, long int* mc, long int** mv) + rde_param_query_amark (RDE_PARAM p, long int* mc, void*** mv) { - rde_stack_get (p->mark, mc, (void***) mv); + rde_stack_get (p->mark, mc, mv); } SCOPE void rde_param_query_ast (RDE_PARAM p, long int* ac, Tcl_Obj*** av) { rde_stack_get (p->ast, ac, (void***) av); @@ -660,25 +660,25 @@ res = Tcl_NewStringObj ("", 0); } else { Tcl_Obj* ov [2]; Tcl_Obj** mov; long int mc, i, j; - long int* mv; + void** mv; int lastid; const char* msg; - rde_stack_get (er->msg, &mc, (void***) &mv); + rde_stack_get (er->msg, &mc, &mv); - qsort (mv, mc, sizeof (long int), er_int_compare); + qsort (mv, mc, sizeof (void*), er_int_compare); mov = NALLOC (mc, Tcl_Obj*); lastid = -1; for (i=0, j=0; i < mc; i++) { ASSERT_BOUNDS (i,mc); - if (mv [i] == lastid) continue; - lastid = mv [i]; - ASSERT_BOUNDS(mv[i],p->numstr); - msg = p->string [mv[i]]; + if (((long int) mv [i]) == lastid) continue; + lastid = (long int) mv [i]; + ASSERT_BOUNDS((long int) mv[i],p->numstr); + msg = p->string [(long int) mv[i]]; ASSERT_BOUNDS (j,mc); mov [j] = Tcl_NewStringObj (msg, -1); j++; } @@ -747,11 +747,11 @@ { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_pop_rewind"); TRACE (("RDE_PARAM %p",p)); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -760,11 +760,11 @@ rde_param_i_ast_rewind (RDE_PARAM p) { long int trim = (long int) rde_stack_top (p->mark); ENTER ("rde_param_i_ast_rewind"); TRACE (("RDE_PARAM %p",p)); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); TRACE (("SV = (%p rc%d '%s')", p->SV, p->SV ? p->SV->refCount : -1, p->SV ? Tcl_GetString (p->SV) : "")); RETURNVOID; @@ -795,11 +795,11 @@ rde_param_i_error_clear (RDE_PARAM p) { ER_CLEAR (p); } SCOPE void - rde_param_i_error_nonterminal (RDE_PARAM p, int s) + rde_param_i_error_nonterminal (RDE_PARAM p, long int s) { return; long int pos; if (!p->ER) return; @@ -851,11 +851,11 @@ { rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } static void - error_set (RDE_PARAM p, int s) + error_set (RDE_PARAM p, long int s) { error_state_free (p->ER); p->ER = ALLOC (ERROR_STATE); p->ER->refCount = 1; p->ER->loc = p->CL; @@ -893,11 +893,11 @@ rde_param_i_loc_rewind (RDE_PARAM p) { p->CL = (long int) rde_stack_top (p->LS); } SCOPE void - rde_param_i_input_next (RDE_PARAM p, int m) + rde_param_i_input_next (RDE_PARAM p, long int m) { int leni; char* ch; ASSERT_BOUNDS(m,p->numstr); p->CL ++; @@ -939,11 +939,11 @@ rde_param_i_status_negate (RDE_PARAM p) { p->ST = !p->ST; } SCOPE int - rde_param_i_symbol_restore (RDE_PARAM p, int s) + rde_param_i_symbol_restore (RDE_PARAM p, long int s) { NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -962,11 +962,11 @@ TRACE (("SV_RESTORE (%p) '%s'",scs->SV, scs->SV ? Tcl_GetString (scs->SV):"")); SV_SET (p, scs->SV); return 1; } SCOPE void - rde_param_i_symbol_save (RDE_PARAM p, int s) + rde_param_i_symbol_save (RDE_PARAM p, long int s) { long int at = (long int) rde_stack_top (p->LS); NC_STATE* scs; Tcl_HashEntry* hPtr; Tcl_HashTable* tablePtr; @@ -1033,11 +1033,11 @@ rde_param_i_test_control (RDE_PARAM p) { test_class (p, Tcl_UniCharIsControl, tc_control); } SCOPE void - rde_param_i_test_char (RDE_PARAM p, const char* c, int msg) + rde_param_i_test_char (RDE_PARAM p, const char* c, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = Tcl_UtfNcmp (p->CC, c, 1) == 0; if (p->ST) { ER_CLEAR (p); @@ -1075,11 +1075,11 @@ rde_param_i_test_punct (RDE_PARAM p) { test_class (p, Tcl_UniCharIsPunct, tc_punct); } SCOPE void - rde_param_i_test_range (RDE_PARAM p, char* s, char* e, int msg) + rde_param_i_test_range (RDE_PARAM p, const char* s, const char* e, long int msg) { ASSERT_BOUNDS(msg,p->numstr); p->ST = (Tcl_UtfNcmp (s, p->CC, 1) <= 0) && (Tcl_UtfNcmp (p->CC, e, 1) <= 0); @@ -1144,11 +1144,11 @@ rde_param_i_value_clear (RDE_PARAM p) { SV_CLEAR (p); } SCOPE void - rde_param_i_value_leaf (RDE_PARAM p, int s) + rde_param_i_value_leaf (RDE_PARAM p, long int s) { Tcl_Obj* newsv; Tcl_Obj* ov [3]; long int pos = 1 + (long int) rde_stack_top (p->LS); ASSERT_BOUNDS(s,p->numstr); @@ -1158,11 +1158,11 @@ newsv = Tcl_NewListObj (3, ov); TRACE (("rde_param_i_value_leaf => '%s'",Tcl_GetString (newsv))); SV_SET (p, newsv); } SCOPE void - rde_param_i_value_reduce (RDE_PARAM p, int s) + rde_param_i_value_reduce (RDE_PARAM p, long int s) { Tcl_Obj* newsv; int oc, i, j; Tcl_Obj** ov; long int ac; @@ -1190,18 +1190,21 @@ ckfree ((char*) ov); } static int er_int_compare (const void* a, const void* b) { - long int ai = *((long int*) a); - long int bi = *((long int*) b); - if (ai < bi) { return -1; } - if (ai > bi) { return 1; } + + const void** ael = (const void**) a; + const void** bel = (const void**) b; + long int avalue = (long int) *ael; + long int bvalue = (long int) *bel; + if (avalue < bvalue) { return -1; } + if (avalue > bvalue) { return 1; } return 0; } SCOPE int - rde_param_i_symbol_start (RDE_PARAM p, int s) + rde_param_i_symbol_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1210,11 +1213,11 @@ } rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) { if (p->ST) { rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); @@ -1224,26 +1227,26 @@ rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE int - rde_param_i_symbol_void_start (RDE_PARAM p, int s) + rde_param_i_symbol_void_start (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); return 0; } SCOPE int - rde_param_i_symbol_void_start_d (RDE_PARAM p, int s) + rde_param_i_symbol_void_start_d (RDE_PARAM p, long int s) { if (rde_param_i_symbol_restore (p, s)) return 1; rde_stack_push (p->LS, (void*) p->CL); rde_stack_push (p->mark, (void*) rde_stack_size (p->ast)); return 0; } SCOPE void - rde_param_i_symbol_done_d_reduce (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_reduce (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_reduce (p, s); } else { SV_CLEAR (p); @@ -1256,11 +1259,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1272,11 +1275,11 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_d_leaf (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_leaf (RDE_PARAM p, long int s, long int m) { if (p->ST) { rde_param_i_value_leaf (p, s); } else { SV_CLEAR (p); @@ -1289,133 +1292,133 @@ rde_stack_push (p->ast, p->SV); Tcl_IncrRefCount (p->SV); } } SCOPE void - rde_param_i_symbol_done_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_symbol_done_d_void (RDE_PARAM p, int s, int m) + rde_param_i_symbol_done_d_void (RDE_PARAM p, long int s, long int m) { SV_CLEAR (p); rde_param_i_symbol_save (p, s); rde_param_i_error_nonterminal (p, m); rde_param_i_ast_pop_rewind (p); rde_stack_pop (p->LS, 1); } SCOPE void - rde_param_i_next_char (RDE_PARAM p, char* c, int m) + rde_param_i_next_char (RDE_PARAM p, const char* c, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_char (p, c, m); } SCOPE void - rde_param_i_next_range (RDE_PARAM p, char* s, char* e, int m) + rde_param_i_next_range (RDE_PARAM p, const char* s, const char* e, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_range (p, s, e, m); } SCOPE void - rde_param_i_next_alnum (RDE_PARAM p, int m) + rde_param_i_next_alnum (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alnum (p); } SCOPE void - rde_param_i_next_alpha (RDE_PARAM p, int m) + rde_param_i_next_alpha (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_alpha (p); } SCOPE void - rde_param_i_next_ascii (RDE_PARAM p, int m) + rde_param_i_next_ascii (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ascii (p); } SCOPE void - rde_param_i_next_control (RDE_PARAM p, int m) + rde_param_i_next_control (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_control (p); } SCOPE void - rde_param_i_next_ddigit (RDE_PARAM p, int m) + rde_param_i_next_ddigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_ddigit (p); } SCOPE void - rde_param_i_next_digit (RDE_PARAM p, int m) + rde_param_i_next_digit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_digit (p); } SCOPE void - rde_param_i_next_graph (RDE_PARAM p, int m) + rde_param_i_next_graph (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_graph (p); } SCOPE void - rde_param_i_next_lower (RDE_PARAM p, int m) + rde_param_i_next_lower (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_lower (p); } SCOPE void - rde_param_i_next_print (RDE_PARAM p, int m) + rde_param_i_next_print (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_print (p); } SCOPE void - rde_param_i_next_punct (RDE_PARAM p, int m) + rde_param_i_next_punct (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_punct (p); } SCOPE void - rde_param_i_next_space (RDE_PARAM p, int m) + rde_param_i_next_space (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_space (p); } SCOPE void - rde_param_i_next_upper (RDE_PARAM p, int m) + rde_param_i_next_upper (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_upper (p); } SCOPE void - rde_param_i_next_wordchar (RDE_PARAM p, int m) + rde_param_i_next_wordchar (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_wordchar (p); } SCOPE void - rde_param_i_next_xdigit (RDE_PARAM p, int m) + rde_param_i_next_xdigit (RDE_PARAM p, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; rde_param_i_test_xdigit (p); } @@ -1492,11 +1495,11 @@ rde_param_i_state_merge_value (RDE_PARAM p) { rde_param_i_error_pop_merge (p); if (!p->ST) { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); } rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } @@ -1560,11 +1563,11 @@ if (p->ER) { p->ER->refCount ++; } return 0; } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_pop (p->LS, 1); return 1; } } @@ -1603,11 +1606,11 @@ rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); rde_stack_pop (p->mark, 1); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; @@ -1619,19 +1622,19 @@ if (p->ST) { rde_stack_pop (p->mark, 1); rde_stack_pop (p->LS, 1); } else { long int trim = (long int) rde_stack_top (p->mark); - rde_stack_trim (p->ast, (int) trim); + rde_stack_trim (p->ast, trim); p->CL = (long int) rde_stack_top (p->LS); rde_stack_push (p->ES, p->ER); if (p->ER) { p->ER->refCount ++; } } return p->ST; } SCOPE void - rde_param_i_next_str (RDE_PARAM p, const char* str, int m) + rde_param_i_next_str (RDE_PARAM p, const char* str, long int m) { int at = p->CL; while (*str) { rde_param_i_input_next (p, m); @@ -1648,11 +1651,11 @@ } str = Tcl_UtfNext (str); } } SCOPE void - rde_param_i_next_class (RDE_PARAM p, const char* class, int m) + rde_param_i_next_class (RDE_PARAM p, const char* class, long int m) { rde_param_i_input_next (p, m); if (!p->ST) return; while (*class) { p->ST = Tcl_UtfNcmp (p->CC, class, 1) == 0; @@ -1784,11 +1787,11 @@ Tcl_SetAssocData (interp, KEY, proc, (ClientData) parserg); } parserg->counter ++; - sprintf (parserg->buf, "PARSER%d", parserg->counter); + sprintf (parserg->buf, "PARSER%ld", parserg->counter); return parserg->buf; #undef KEY } static void