1/* pt::rde::critcl - critcl - layer 1 declarations
2 * (c) PARAM functions
3 */
4
5#ifndef _P_INT_H
6#define _P_INT_H 1
7
8#include <p.h>     /* Public decls */
9#include <param.h> /* PARAM architectural state */
10#include <util.h>  /* Tracing support */
11
12typedef struct RDE_STRING {
13    struct RDE_STRING* next;
14    Tcl_Obj*           self;
15    int                id;
16} RDE_STRING;
17
18typedef struct RDE_STATE_ {
19    RDE_PARAM   p;
20    Tcl_Command c;
21
22    struct RDE_STRING* sfirst;
23
24    Tcl_HashTable str; /* Table to intern strings, i.e. convert them into
25			* unique numerical indices for the PARAM instructions.
26			*/
27
28    /* And the counter mapping from ids to strings, this is handed to the
29     * PARAM for use.
30     */
31    int    maxnum; /* NOTE -- */
32    int    numstr; /* This is, essentially, an RDE_STACK (char* elements) */
33    char** string; /* Convert over to that instead of replicating the code */
34
35#ifdef RDE_TRACE
36    int icount;  /* Instruction counter, when tracing */
37#endif
38} RDE_STATE_;
39
40int param_intern (RDE_STATE p, char* literal);
41
42#endif /* _P_H */
43
44/*
45 * Local Variables:
46 * mode: c
47 * c-basic-offset: 4
48 * fill-column: 78
49 * End:
50 */
51