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 },
};