V10/cmd/dag/trie.c

#include <stdio.h>
#include <ctype.h>
#include "draw_dag.h"
#include "dag.h"
#include "parsedag.h"
#include "TrieFA.h"

TrieState           TrieStateTbl[140] = {
    { -1, 0, 0x4ef9bf },
    { -1, 17, 0x40000 },
    { AS, 18, 0x0 },
    { -1, 18, 0x1 },
    { -1, 19, 0x4 },
    { -1, 20, 0x400 },
    { -1, 21, 0x8010 },
    { -1, 23, 0x8 },
    { -1, 24, 0x40 },
    { -1, 25, 0x10 },
    { BACKEDGE, 26, 0x0 },
    { -1, 26, 0x1 },
    { -1, 27, 0x80000 },
    { -1, 28, 0x80 },
    { BACKPATH, 29, 0x0 },
    { -1, 29, 0x4000 },
    { -1, 30, 0x800 },
    { -1, 31, 0x4000 },
    { -1, 32, 0x20000 },
    { COLOR, 33, 0x0 },
    { -1, 33, 0x24001 },
    { -1, 36, 0x40000 },
    { -1, 37, 0x80 },
    { -1, 38, 0x10 },
    { -1, 39, 0x8 },
    { DASHED, 40, 0x0 },
    { -1, 40, 0x80000 },
    { -1, 41, 0x80000 },
    { -1, 42, 0x10 },
    { -1, 43, 0x8 },
    { DOTTED, 44, 0x0 },
    { -1, 44, 0x1 },
    { -1, 45, 0x400000 },
    { DRAW, 46, 0x0 },
    { -1, 46, 0x810008 },
    { -1, 49, 0x40 },
    { -1, 50, 0x10 },
    { EDGE, 51, 0x40000 },
    { EDGES, 52, 0x0 },
    { -1, 52, 0x100000 },
    { -1, 53, 0x1 },
    { -1, 54, 0x800 },
    { -1, 55, 0x800 },
    { -1, 56, 0x1000000 },
    { EQUALLY, 57, 0x0 },
    { -1, 57, 0x1 },
    { -1, 58, 0x4 },
    { -1, 59, 0x80000 },
    { -1, 60, 0x800 },
    { -1, 61, 0x1000000 },
    { EXACTLY, 62, 0x0 },
    { -1, 62, 0x20000 },
    { -1, 63, 0x4000 },
    { -1, 64, 0x1000 },
    { FROM, 65, 0x0 },
    { -1, 65, 0x10 },
    { -1, 66, 0x100 },
    { -1, 67, 0x40 },
    { -1, 68, 0x80 },
    { -1, 69, 0x80000 },
    { HEIGHT, 70, 0x0 },
    { -1, 70, 0x2000 },
    { -1, 71, 0x200000 },
    { -1, 72, 0x100 },
    { -1, 73, 0x40000 },
    { INVIS, 74, 0x0 },
    { -1, 74, 0x1 },
    { -1, 75, 0x2 },
    { -1, 76, 0x10 },
    { -1, 77, 0x800 },
    { LABEL, 78, 0x0 },
    { -1, 78, 0x101 },
    { -1, 80, 0x800000 },
    { -1, 81, 0x100 },
    { -1, 82, 0x1000 },
    { -1, 83, 0x100000 },
    { -1, 84, 0x1000 },
    { MAXIMUM, 85, 0x0 },
    { -1, 85, 0x2000 },
    { -1, 86, 0x100 },
    { -1, 87, 0x1000 },
    { -1, 88, 0x100000 },
    { -1, 89, 0x1000 },
    { MINIMUM, 90, 0x0 },
    { -1, 90, 0x4000 },
    { -1, 91, 0x8 },
    { -1, 92, 0x10 },
    { -1, 93, 0x40000 },
    { NODES, 94, 0x0 },
    { -1, 94, 0x20000 },
    { -1, 95, 0x8 },
    { -1, 96, 0x10 },
    { -1, 97, 0x20000 },
    { -1, 98, 0x10 },
    { -1, 99, 0x8 },
    { ORDERED, 100, 0x0 },
    { -1, 100, 0x4001 },
    { -1, 102, 0x80000 },
    { -1, 103, 0x80 },
    { PATH, 104, 0x0 },
    { -1, 104, 0x100 },
    { -1, 105, 0x2000 },
    { -1, 106, 0x80000 },
    { -1, 107, 0x40000 },
    { -1, 108, 0x100 },
    { -1, 109, 0x2000000 },
    { -1, 110, 0x10 },
    { POINTSIZE, 111, 0x0 },
    { -1, 111, 0x1 },
    { -1, 112, 0x2000 },
    { -1, 113, 0x400 },
    { RANK, 114, 0x40000 },
    { RANKS, 115, 0x0 },
    { -1, 115, 0x4011 },
    { -1, 118, 0x1000 },
    { -1, 119, 0x10 },
    { SAME, 120, 0x0 },
    { -1, 120, 0x8000 },
    { -1, 121, 0x1 },
    { -1, 122, 0x20000 },
    { -1, 123, 0x1 },
    { -1, 124, 0x80000 },
    { -1, 125, 0x10 },
    { SEPARATE, 126, 0x0 },
    { -1, 126, 0x800 },
    { -1, 127, 0x100 },
    { -1, 128, 0x8 },
    { SOLID, 129, 0x0 },
    { -1, 129, 0x4000 },
    { TO, 130, 0x0 },
    { -1, 130, 0x110 },
    { -1, 132, 0x100 },
    { -1, 133, 0x40 },
    { -1, 134, 0x80 },
    { -1, 135, 0x80000 },
    { WEIGHT, 136, 0x0 },
    { -1, 136, 0x8 },
    { -1, 137, 0x80000 },
    { -1, 138, 0x80 },
    { WIDTH, 139, 0x0 },
};
TrieTrans           TrieTransTbl[139] = {
    /* State   0 */  { 'e',  34 }, { 'd',  20 }, { 's', 113 }, { 'm',  71 }, { 'p',  96 }, { 'r', 108 }, { 'b',   3 }, { 'w', 130 }, { 'l',  66 }, { 'a',   1 }, { 'n',  84 }, { 'o',  89 }, { 'c',  15 }, { 'f',  51 }, { 'h',  55 }, { 't', 128 }, { 'i',  61 },
    /* State   1 */  { 's',   2 },
    /* State   3 */  { 'a',   4 },
    /* State   4 */  { 'c',   5 },
    /* State   5 */  { 'k',   6 },
    /* State   6 */  { 'e',   7 }, { 'p',  11 },
    /* State   7 */  { 'd',   8 },
    /* State   8 */  { 'g',   9 },
    /* State   9 */  { 'e',  10 },
    /* State  11 */  { 'a',  12 },
    /* State  12 */  { 't',  13 },
    /* State  13 */  { 'h',  14 },
    /* State  15 */  { 'o',  16 },
    /* State  16 */  { 'l',  17 },
    /* State  17 */  { 'o',  18 },
    /* State  18 */  { 'r',  19 },
    /* State  20 */  { 'a',  21 }, { 'o',  26 }, { 'r',  31 },
    /* State  21 */  { 's',  22 },
    /* State  22 */  { 'h',  23 },
    /* State  23 */  { 'e',  24 },
    /* State  24 */  { 'd',  25 },
    /* State  26 */  { 't',  27 },
    /* State  27 */  { 't',  28 },
    /* State  28 */  { 'e',  29 },
    /* State  29 */  { 'd',  30 },
    /* State  31 */  { 'a',  32 },
    /* State  32 */  { 'w',  33 },
    /* State  34 */  { 'd',  35 }, { 'q',  39 }, { 'x',  45 },
    /* State  35 */  { 'g',  36 },
    /* State  36 */  { 'e',  37 },
    /* State  37 */  { 's',  38 },
    /* State  39 */  { 'u',  40 },
    /* State  40 */  { 'a',  41 },
    /* State  41 */  { 'l',  42 },
    /* State  42 */  { 'l',  43 },
    /* State  43 */  { 'y',  44 },
    /* State  45 */  { 'a',  46 },
    /* State  46 */  { 'c',  47 },
    /* State  47 */  { 't',  48 },
    /* State  48 */  { 'l',  49 },
    /* State  49 */  { 'y',  50 },
    /* State  51 */  { 'r',  52 },
    /* State  52 */  { 'o',  53 },
    /* State  53 */  { 'm',  54 },
    /* State  55 */  { 'e',  56 },
    /* State  56 */  { 'i',  57 },
    /* State  57 */  { 'g',  58 },
    /* State  58 */  { 'h',  59 },
    /* State  59 */  { 't',  60 },
    /* State  61 */  { 'n',  62 },
    /* State  62 */  { 'v',  63 },
    /* State  63 */  { 'i',  64 },
    /* State  64 */  { 's',  65 },
    /* State  66 */  { 'a',  67 },
    /* State  67 */  { 'b',  68 },
    /* State  68 */  { 'e',  69 },
    /* State  69 */  { 'l',  70 },
    /* State  71 */  { 'a',  72 }, { 'i',  78 },
    /* State  72 */  { 'x',  73 },
    /* State  73 */  { 'i',  74 },
    /* State  74 */  { 'm',  75 },
    /* State  75 */  { 'u',  76 },
    /* State  76 */  { 'm',  77 },
    /* State  78 */  { 'n',  79 },
    /* State  79 */  { 'i',  80 },
    /* State  80 */  { 'm',  81 },
    /* State  81 */  { 'u',  82 },
    /* State  82 */  { 'm',  83 },
    /* State  84 */  { 'o',  85 },
    /* State  85 */  { 'd',  86 },
    /* State  86 */  { 'e',  87 },
    /* State  87 */  { 's',  88 },
    /* State  89 */  { 'r',  90 },
    /* State  90 */  { 'd',  91 },
    /* State  91 */  { 'e',  92 },
    /* State  92 */  { 'r',  93 },
    /* State  93 */  { 'e',  94 },
    /* State  94 */  { 'd',  95 },
    /* State  96 */  { 'a',  97 }, { 'o', 100 },
    /* State  97 */  { 't',  98 },
    /* State  98 */  { 'h',  99 },
    /* State 100 */  { 'i', 101 },
    /* State 101 */  { 'n', 102 },
    /* State 102 */  { 't', 103 },
    /* State 103 */  { 's', 104 },
    /* State 104 */  { 'i', 105 },
    /* State 105 */  { 'z', 106 },
    /* State 106 */  { 'e', 107 },
    /* State 108 */  { 'a', 109 },
    /* State 109 */  { 'n', 110 },
    /* State 110 */  { 'k', 111 },
    /* State 111 */  { 's', 112 },
    /* State 113 */  { 'a', 114 }, { 'e', 117 }, { 'o', 124 },
    /* State 114 */  { 'm', 115 },
    /* State 115 */  { 'e', 116 },
    /* State 117 */  { 'p', 118 },
    /* State 118 */  { 'a', 119 },
    /* State 119 */  { 'r', 120 },
    /* State 120 */  { 'a', 121 },
    /* State 121 */  { 't', 122 },
    /* State 122 */  { 'e', 123 },
    /* State 124 */  { 'l', 125 },
    /* State 125 */  { 'i', 126 },
    /* State 126 */  { 'd', 127 },
    /* State 128 */  { 'o', 129 },
    /* State 130 */  { 'e', 131 }, { 'i', 136 },
    /* State 131 */  { 'i', 132 },
    /* State 132 */  { 'g', 133 },
    /* State 133 */  { 'h', 134 },
    /* State 134 */  { 't', 135 },
    /* State 136 */  { 'd', 137 },
    /* State 137 */  { 't', 138 },
    /* State 138 */  { 'h', 139 },
};