+++ /dev/null
-/*************************************************************************
- * Copyright (c) 2011 AT&T Intellectual Property
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors: Details at https://graphviz.org
- *************************************************************************/
-
-#pragma once
-
-/*
- * Glenn Fowler
- * AT&T Research
- *
- * 1-6 char lower-case keyword -> long hash
- * digit args passed as HASHKEYN('2')
- */
-
-#define HASHKEYMAX 6
-#define HASHKEYBIT 5
-#define HASHKEYOFF ('a'-1)
-#define HASHKEYPART(h,c) (((h)<<HASHKEYBIT)+HASHKEY1(c))
-
-#define HASHKEYN(n) ((n)-'0'+'z'+1)
-
-#define HASHKEY1(c1) ((c1)-HASHKEYOFF)
-#define HASHKEY2(c1,c2) HASHKEYPART(HASHKEY1(c1),c2)
-#define HASHKEY3(c1,c2,c3) HASHKEYPART(HASHKEY2(c1,c2),c3)
-#define HASHKEY4(c1,c2,c3,c4) HASHKEYPART(HASHKEY3(c1,c2,c3),c4)
-#define HASHKEY5(c1,c2,c3,c4,c5) HASHKEYPART(HASHKEY4(c1,c2,c3,c4),c5)
-#define HASHKEY6(c1,c2,c3,c4,c5,c6) HASHKEYPART(HASHKEY5(c1,c2,c3,c4,c5),c6)
-
-#define HASHNKEY1(n,c1) HASHKEY2((n)+HASHKEYOFF,c1)
-#define HASHNKEY2(n,c2,c1) HASHKEY3((n)+HASHKEYOFF,c2,c1)
-#define HASHNKEY3(n,c3,c2,c1) HASHKEY4((n)+HASHKEYOFF,c3,c2,c1)
-#define HASHNKEY4(n,c4,c3,c2,c1) HASHKEY5((n)+'a',c4,c3,c2,c1)
-#define HASHNKEY5(n,c5,c4,c3,c2,c1) HASHKEY6((n)+'a',c5,c4,c3,c2,c1)
-
-#undef extern
#include <ast/ast.h>
#include <ctype.h>
-#include <ast/hashkey.h>
#include <stddef.h>
#include <string.h>
if (ok)
/*NOP*/;
else if (n == ':') {
- switch (HASHNKEY5
- (x, oldp[0], oldp[1], oldp[2], oldp[3],
- oldp[4])) {
- case HASHNKEY5(5, 'a', 'l', 'n', 'u', 'm'):
+ if (x == 5 && strncmp(oldp, "alnum", 5) == 0) {
if (isalnum(sc))
ok = 1;
- break;
- case HASHNKEY5(5, 'a', 'l', 'p', 'h', 'a'):
+ } else if (x == 5 && strncmp(oldp, "alpha", 5) == 0) {
if (isalpha(sc))
ok = 1;
- break;
- case HASHNKEY5(5, 'b', 'l', 'a', 'n', 'k'):
+ } else if (x == 5 && strncmp(oldp, "blank", 5) == 0) {
if (isblank(sc))
ok = 1;
- break;
- case HASHNKEY5(5, 'c', 'n', 't', 'r', 'l'):
+ } else if (x == 5 && strncmp(oldp, "cntrl", 5) == 0) {
if (iscntrl(sc))
ok = 1;
- break;
- case HASHNKEY5(5, 'd', 'i', 'g', 'i', 't'):
+ } else if (x == 5 && strncmp(oldp, "digit", 5) == 0) {
if (isdigit(sc))
ok = 1;
- break;
- case HASHNKEY5(5, 'g', 'r', 'a', 'p', 'h'):
+ } else if (x == 5 && strncmp(oldp, "graph", 5) == 0) {
if (isgraph(sc))
ok = 1;
- break;
- case HASHNKEY5(5, 'l', 'o', 'w', 'e', 'r'):
+ } else if (x == 5 && strncmp(oldp, "lower", 5) == 0) {
if (islower(sc))
ok = 1;
- break;
- case HASHNKEY5(5, 'p', 'r', 'i', 'n', 't'):
+ } else if (x == 5 && strncmp(oldp, "print", 5) == 0) {
if (isprint(sc))
ok = 1;
- break;
- case HASHNKEY5(5, 'p', 'u', 'n', 'c', 't'):
+ } else if (x == 5 && strncmp(oldp, "punct", 5) == 0) {
if (ispunct(sc))
ok = 1;
- break;
- case HASHNKEY5(5, 's', 'p', 'a', 'c', 'e'):
+ } else if (x == 5 && strncmp(oldp, "space", 5) == 0) {
if (isspace(sc))
ok = 1;
- break;
- case HASHNKEY5(5, 'u', 'p', 'p', 'e', 'r'):
+ } else if (x == 5 && strncmp(oldp, "upper", 5) == 0) {
if (icase ? islower(sc) : isupper(sc))
ok = 1;
- break;
- case HASHNKEY5(6, 'x', 'd', 'i', 'g', 'i'):
+ } else if (x == 6 && strncmp(oldp, "xdigi", 5) == 0) {
if (oldp[5] == 't' && isxdigit(sc))
ok = 1;
- break;
}
}
else if (range)