]> pd.if.org Git - mmurtl/commitdiff
autocommit for file dated 1995-02-09 16:22:58
authorRichard Burgess <>
Thu, 9 Feb 1995 16:22:58 +0000 (16:22 +0000)
committerNathan Wagner <nw@hydaspes.if.org>
Mon, 17 Oct 2016 14:03:48 +0000 (14:03 +0000)
msamples/cm32m/tokens32.h [new file with mode: 0644]

diff --git a/msamples/cm32m/tokens32.h b/msamples/cm32m/tokens32.h
new file mode 100644 (file)
index 0000000..78e5d00
--- /dev/null
@@ -0,0 +1,244 @@
+/* TOKENS32.h\r
+   Tokens for the C Minus compiler:\r
+   The tokens are arranged in alphebetical order by the first\r
+   character.  From there they are grouped grouped from longest to\r
+   shortest (i.e. = comes after ==).\r
+   Copyright 1991, 1992 R.A. Burgess\r
+*/\r
+\r
+/*\r
+    This is an index table for the first character of the token.\r
+       It's ASCII numeric value provides an index to the token table.\r
+       This cuts searching and comparison down to less than 4 compares\r
+       worst case, 2 on the average!\r
+*/\r
+       static unsigned char itoken[128] = {\r
+               0,   0,   0,   0,   0,   0,   0,   0,    /* 00 - 07  */\r
+               0,   0,   0,   0,   0,   0,   0,   0,    /* 08 - 15  */\r
+               0,   0,   0,   0,   0,   0,   0,   0,    /* 16 - 23  */\r
+               0,   0,   0,   0,   0,   0,   0,   0,    /* 24 - 31  */\r
+               0,   1,   0,   0,   0,   3,   5,   0,    /* 32 - 39  */\r
+               8,   9,  10,  12,  15,  16,  20,  22,    /* 40 - 47  */\r
+               0,   0,   0,   0,   0,   0,   0,   0,    /* 48 - 55  */\r
+               0,   0,  24,  25,  26,  30,  32,  36,    /* 56 - 63  */\r
+               0,   0,   0,   0,   0,   0,   0,   0,    /* 64 - 71  */\r
+               0,   0,   0,   0,   0,   0,   0,   0,    /* 72 - 79  */\r
+               0,   0,   0,   0,   0,   0,   0,   0,    /* 80 - 87  */\r
+               0,   0,   0,  37,   0,  38,  39,   0,    /* 88 - 95  */\r
+               0,   0,  41,  42,  46,  48,  50,  52,    /* 96 - 103 */\r
+               0,  53,   0,   0,  56,   0,   0,   0,    /* 104- 111 */\r
+               0,   0,  57,  59,  65,  66,  68,  69,    /* 112- 119 */\r
+               0,   0,   0,  70,  71,  74,  75,   0};   /* 120- 127 */\r
+\r
+       static char *tokens[] = {\r
+\r
+       /* token         number  priority  optype  ASCII */\r
+               "",          /* 00       0       0        0  */\r
+               "!=",        /* 01       9       2        33 */\r
+               "!",         /* 02       0       1           */\r
+               "%=",        /* 03       2       3        37 */\r
+               "%",         /* 04       13      2           */\r
+               "&&",        /* 05       5       4        38 */\r
+               "&=",        /* 06       2       3           */\r
+               "&",         /* 07       8       2           */\r
+               "(",         /* 08       0       0        40 */\r
+               ")",         /* 09       0       0        41 */\r
+               "*=",        /* 10       2       3        42 */\r
+               "*",         /* 11       13      2           */\r
+               "++",        /* 12       15      0        43 */\r
+               "+=",        /* 13       2       3           */\r
+               "+",         /* 14       12      2           */\r
+               ",",         /* 15       0       0        44 */\r
+               "--",        /* 16       15      0        45 */\r
+               "-=",        /* 17       2       3           */\r
+               "->",        /* 18       15      2           */\r
+               "-",         /* 19       12      2           */\r
+               "...",       /* 20       0       0        46 */\r
+               ".",         /* 21       15      2        46 */\r
+               "/=",        /* 22       2       3        47 */\r
+               "/",         /* 23       13      2           */\r
+               ":",         /* 24       0       0        58 */\r
+               ";",         /* 25       0       0        59 */\r
+               "<<=",       /* 26       2       3        60 */\r
+               "<<",        /* 27       11      2           */\r
+               "<=",        /* 28       10      2           */\r
+               "<",         /* 29       10      2           */\r
+               "==",        /* 30       9       2        61 */\r
+               "=",         /* 31       2       3           */\r
+               ">>=",       /* 32       2       3        62 */\r
+               ">>",        /* 33       11      2           */\r
+               ">=",        /* 34       10      2           */\r
+               ">",         /* 35       10      2           */\r
+               "?",         /* 36       3       4        63 */\r
+               "[",         /* 37       0       0        91 */\r
+               "]",         /* 38       0       0        93 */\r
+               "^=",        /* 39       2       3        94 */\r
+               "^",         /* 40       7       2           */\r
+               "break",     /* 41       0       0        98 */\r
+               "case",      /* 42       0       0        99 */\r
+               "char",      /* 43       0       0           */\r
+               "const",     /* 44       0       0           */\r
+               "continue",  /* 45       0       0           */\r
+               "default",   /* 46       0       0        100*/\r
+               "do",        /* 47       0       0           */\r
+               "else",      /* 48       0       0        101*/\r
+               "extern",    /* 49       0       0           */\r
+               "far",       /* 50       0       0        102*/\r
+               "for",       /* 51       0       0           */\r
+               "goto",      /* 52       0       0        103*/\r
+               "interrupt", /* 53       0       0        105*/\r
+               "int",       /* 54       0       0           */\r
+               "if",        /* 55       0       0           */\r
+               "long",      /* 56       0       0        108*/\r
+               "register",  /* 57       0       0        114*/\r
+               "return",    /* 58       0       0           */\r
+               "signed",    /* 59       0       0        115*/\r
+               "sizeof",    /* 60       0       1           */\r
+               "static",    /* 61       0       0           */\r
+               "struct",    /* 62       0       0           */\r
+               "switch",    /* 63       0       0           */\r
+               "short",     /* 64       0       0           */\r
+               "typedef",   /* 65       0       0        116*/\r
+               "unsigned",  /* 66       0       0        117*/\r
+               "union",     /* 67       0       0           */\r
+               "void",      /* 68       0       0        118*/\r
+               "while",     /* 69       0       0        119*/\r
+               "{",         /* 70       0       0        123*/\r
+               "||",        /* 71       4       4        124*/\r
+               "|=",        /* 72       2       3           */\r
+               "|",         /* 73       6       2           */\r
+               "}",         /* 74       0       0        125*/\r
+               "~",         /* 75       ?       1        126*/\r
+               0};           /* End of table */\r
+\r
+#define NE              1              /* '!='  */\r
+#define NOT             2              /* '!'   */\r
+#define MODE    3              /* '%='  */\r
+#define MOD             4              /* '%'   */\r
+#define DAND    5              /* '&&' (marks beginning of binaries) */\r
+#define ANDE    6              /* '&='  */\r
+#define AND             7              /* '&' - And & address of */\r
+#define ORB             8              /* (     */\r
+#define CRB             9              /* )     */\r
+#define STARE  10              /* '*='  */\r
+#define STAR   11              /* '*' - multiply & pointer */\r
+#define INC            12              /* '++'  */\r
+#define ADDE   13              /* '+='  */\r
+#define ADD            14              /* '+'   */\r
+#define COMMA  15              /* ,     */\r
+#define DEC            16              /* '--'  */\r
+#define SUBE   17              /* '-='  */\r
+#define DEREF  18              /* '->'  */\r
+#define SUB            19              /* '-' - subtract & negate */\r
+#define ELIPSE 20              /* '...' Elipse for args */\r
+#define DOT            21              /* '.'   */\r
+#define DIVE   22              /* '/='  */\r
+#define DIV            23              /* '/'   */\r
+#define COLON  24              /* :     */\r
+#define SEMI   25              /* ;     */\r
+#define SHLE   26              /* '<<=' */\r
+#define SHL            27              /* '<<'  */\r
+#define LE             28              /* '<='  */\r
+#define LT             29              /* '<'   */\r
+#define EQ             30              /* '=='  */\r
+#define ASSIGN 31              /* '='   */\r
+#define SHRE   32              /* '>>=' */\r
+#define SHR            33              /* '>>'  */\r
+#define GE             34              /* '>='  */\r
+#define GT             35              /* '>'   */\r
+#define QUEST  36              /* '?' (marks ending of binaries) */\r
+#define OSB            37              /* [     */\r
+#define CSB            38              /* ]     */\r
+#define XORE   39              /* '^='  */\r
+#define XOR            40              /* '^'   */\r
+#define BREAK  41              /* 'break' statement */\r
+#define CASE   42              /* 'case' statement */\r
+#define CHAR   43              /* 'char' */\r
+#define CONST  44              /* 'const' */\r
+#define CONTIN 45              /* 'continue' statement */\r
+#define DEFAULT        46              /* 'default' statement */\r
+#define DO             47              /* 'do' statement */\r
+#define ELSE   48              /* 'else' modifier */\r
+#define EXTERN 49              /* 'extern' */\r
+#define FARR   50              /* 'far'  */\r
+#define FOR            51              /* 'for' statement */\r
+#define GOTO   52              /* 'goto' statement */\r
+#define INTR   53              /* 'interrupt' type for functions */\r
+#define INT            54              /* 'int'   */\r
+#define IF             55              /* 'if' statement */\r
+#define LONG   56              /* 'long'   */\r
+#define REGIS  57              /* 'register' */\r
+#define RETURN 58              /* 'return' statement */\r
+#define SIGNED 59              /* 'signed' */\r
+#define SIZEOF  60             /* 'sizeof' */\r
+#define STAT    61             /* 'static' */\r
+#define STRUC   62             /* 'struct' */\r
+#define SWITCH 63              /* 'switch' statement */\r
+#define SHORT  64              /* 'short' */\r
+#define TYPEDEF 65             /* 'typedef' */\r
+#define UNSIGN 66              /* 'unsigned' */\r
+#define UNION  67              /* 'union' */\r
+#define VOIDD  68              /* 'void' */\r
+#define WHILE  69              /* 'while' statement */\r
+#define OCB            70              /* {    */\r
+#define DOR            71              /* '||' */\r
+#define ORE            72              /* '|=' */\r
+#define OR             73              /* '|'  */\r
+#define CCB            74              /* }    */\r
+#define COM            75              /* '~'  */\r
+\r
+#define ULT    76              /* pseudo operators for unsigned compares */\r
+#define ULE    77              /* pseudo operators for unsigned compares */\r
+#define UGT    78              /* pseudo operators for unsigned compares */\r
+#define UGE    79              /* pseudo operators for unsigned compares */\r
+\r
+/* Table defining expression operator precedence.\r
+   Position in array is token number, while value\r
+   in that position is priority. (15 is highest)\r
+*/\r
+       static char priority[] = {\r
+                0,       9,  0,  2, 13,  5,  2,  8,    /* 00 - 07 */\r
+                0,   0,  2, 13, 15,  2, 12,  0,        /* 08 - 15 */\r
+                15,  2, 15, 12,  0, 15,  2, 13,        /* 16 - 23 */\r
+                0,   0,  2, 11, 10, 10,  9,  2,        /* 24 - 31 */\r
+                2,  11, 10, 10,  3,  0,  0,  2,        /* 32 - 39 */\r
+                7,       0,  0,  0,  0,  0,  0,  0,    /* 40 - 47 */\r
+                0,   0,  0,  0,  0,  0,  0,  0,        /* 48 - 55 */\r
+                0,   0,  0,  0,  0,  0,  0,  0,        /* 56 - 63 */\r
+                0,   0,  0,  0,  0,  0,  0,  4,        /* 64 - 71 */\r
+                2,   6,  0,  0,  0,  0,  0,  0,        /* 72 - 79 */\r
+                0,   0,  0,  0,  0,  0,  0,  0,        /* 80 - 87 */\r
+                0,   0,  0,  0,  0,  0,  0,  0,        /* 88 - 95 */\r
+                0,   0,  0,  0,  0,  0,  0,  0,        /* 96 - 103*/\r
+                0,   0,  0,  0,  0,  0,  0,  0,        /* 104- 111*/\r
+                0,   0,  0,  0,  0,  0,  0,  0,        /* 112- 119*/\r
+                0,   0,  0,  0,  0,  0,  0,  0         /* 120- 127*/\r
+        };\r
+\r
+/* This table determines operator type.\r
+   Two operators grouped Right to Left = 3.\r
+   Two operators grouped Left to Right = 2.\r
+   One operator (ALWAYS grouped Right to Left) = 1.\r
+   Logical operators are not included. They are handled\r
+   separately in the code (numbered as 4).\r
+*/\r
+       static char optype[] = {\r
+                0,      2,  1,  3,  2,  4,  3,  2,             /* 00 - 07 */\r
+                0,  0,  3,  2,  0,  3,  2,  0,         /* 08 - 15 */\r
+                0,  3,  2,  2,  0,  2,  3,  2,         /* 16 - 23 */\r
+                0,  0,  3,  2,  2,  2,  2,  3,         /* 24 - 31 */\r
+                3,  2,  2,  2,  4,  0,  0,  3,         /* 32 - 39 */\r
+                2,      0,  0,  0,  0,  0,  0,  0,             /* 40 - 47 */\r
+                0,  0,  0,  0,  0,  0,  0,  0,         /* 48 - 55 */\r
+                0,  0,  0,  0,  1,  0,  0,  0,         /* 56 - 63 */\r
+                0,  0,  0,  0,  0,  0,  0,  4,         /* 64 - 71 */\r
+                3,  2,  0,  1,  0,  0,  0,  0,         /* 72 - 79 */\r
+                0,  0,  0,  0,  0,  0,  0,  0,         /* 80 - 87 */\r
+                0,  0,  0,  0,  0,  0,  0,  0,         /* 88 - 95 */\r
+                0,  0,  0,  0,  0,  0,  0,  0,         /* 96 - 103*/\r
+                0,  0,  0,  0,  0,  0,  0,  0,         /* 104- 111*/\r
+                0,  0,  0,  0,  0,  0,  0,  0,         /* 112- 119*/\r
+                0,  0,  0,  0,  0,  0,  0,  0          /* 120- 127*/\r
+        };\r
+\r
+/* End of tokens32.h */\r