[BusyBox] further ash size reduction
Vladimir N. Oleynik
dzo at simtreas.ru
Tue Aug 7 10:57:24 UTC 2001
Manuel Novoa III wrote:
>
> While I was looking at ash.c w.r.t. the is_special() macro, I couldn't help
> but notice the large number of redundant entries in the syntax tables. So,
> I collapsed them using indirect addressing. On i386, this patch drops the
> size of ash.o for me by 1k. I only minimially tested it though, as I've
> wasted enough time on this tangent for today.
>
> Note that this patch is against the current CVS version. It only deals
> with is_special() and the syntax tables. It does not incorporate any of
> the other changes (vodz and Aaron have) posted to the list.
>
> Manuel
>
> --------------------------------------------------------------------------------
> Name: ash.c-diff.gz
> ash.c-diff.gz Type: unspecified type (application/octet-stream)
> Encoding: base64
Amazingly! I could increase readable a code and in the beginning it seemed,
that have won at a rate of, but then appeared, that the result is worse on 280
bytes. ;-(
--w
vodz
-------------- next part --------------
--- ash0.c Tue Aug 7 15:53:29 2001
+++ ash.c Tue Aug 7 18:37:59 2001
@@ -179,11 +179,6 @@
#define TEND 29
-#define BASESYNTAX (basesyntax + SYNBASE)
-#define DQSYNTAX (dqsyntax + SYNBASE)
-#define SQSYNTAX (sqsyntax + SYNBASE)
-#define ARISYNTAX (arisyntax + SYNBASE)
-
/* control characters in argument strings */
#define CTLESC '\201'
#define CTLVAR '\202'
@@ -199,8 +194,11 @@
#define is_alpha(c) (((c) < CTLESC || (c) > CTLENDARI) && isalpha((unsigned char) (c)))
#define is_name(c) (((c) < CTLESC || (c) > CTLENDARI) && ((c) == '_' || isalpha((unsigned char) (c))))
#define is_in_name(c) (((c) < CTLESC || (c) > CTLENDARI) && ((c) == '_' || isalnum((unsigned char) (c))))
-#define is_special(c) (is_digit(c)||c=='!'||c=='#'||c=='$'||c=='*'||c=='-'||c=='?'||c=='@')
#define digit_val(c) ((c) - '0')
+#define is_special(c) \
+ ( (((unsigned int)c) - 33 < 32) \
+ && ((0xc1ff920dUL >> (((unsigned int)c) - 33)) & 1))
+
#define _DIAGASSERT(x)
@@ -690,282 +688,287 @@
static void out2c(int c) { putc(c, stderr); }
#endif
-/* syntax table used when not in quotes */
-static const char basesyntax[257] = {
- CENDFILE, CSPCL, CWORD, CCTL,
- CCTL, CCTL, CCTL, CCTL,
- CCTL, CCTL, CCTL, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CSPCL,
- CNL, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CSPCL, CWORD,
- CDQUOTE, CWORD, CVAR, CWORD,
- CSPCL, CSQUOTE, CSPCL, CSPCL,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CSPCL, CSPCL, CWORD,
- CSPCL, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CBACK, CWORD,
- CWORD, CWORD, CBQUOTE, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CSPCL, CENDVAR,
- CWORD
-};
-
-/* syntax table used when in double quotes */
-static const char dqsyntax[257] = {
- CENDFILE, CIGN, CWORD, CCTL,
- CCTL, CCTL, CCTL, CCTL,
- CCTL, CCTL, CCTL, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CNL, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CCTL,
- CENDQUOTE,CWORD, CVAR, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CCTL, CWORD, CWORD, CCTL,
- CWORD, CCTL, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CCTL, CWORD, CWORD, CCTL,
- CWORD, CCTL, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CCTL, CBACK, CCTL,
- CWORD, CWORD, CBQUOTE, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CENDVAR,
- CCTL
-};
-
-/* syntax table used when in single quotes */
-static const char sqsyntax[257] = {
- CENDFILE, CIGN, CWORD, CCTL,
- CCTL, CCTL, CCTL, CCTL,
- CCTL, CCTL, CCTL, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CNL, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CCTL,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CENDQUOTE,CWORD, CWORD,
- CCTL, CWORD, CWORD, CCTL,
- CWORD, CCTL, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CCTL, CWORD, CWORD, CCTL,
- CWORD, CCTL, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CCTL, CCTL, CCTL,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CCTL
-};
-
-/* syntax table used when in arithmetic */
-static const char arisyntax[257] = {
- CENDFILE, CIGN, CWORD, CCTL,
- CCTL, CCTL, CCTL, CCTL,
- CCTL, CCTL, CCTL, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CNL, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CDQUOTE, CWORD, CVAR, CWORD,
- CWORD, CSQUOTE, CLP, CRP,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CBACK, CWORD,
- CWORD, CWORD, CBQUOTE, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CWORD,
- CWORD, CWORD, CWORD, CENDVAR,
- CWORD
+
+/* syntax table used when
+ 1. not in quotes
+ 2. in double quotes
+ 3. in single quotes
+ 4. in arithmetic
+*/
+
+/* number shift bits for finding int syntax index */
+#define BASESYNTAX 0
+#define DQSYNTAX 4
+#define SQSYNTAX 8
+#define ARISYNTAX 12
+
+#define NQ_set(b) (b << BASESYNTAX )
+#define DQ_set(b) (b << DQSYNTAX )
+#define SQ_set(b) (b << SQSYNTAX )
+#define AR_set(b) (b << ARISYNTAX )
+
+static const short syntax_index_table[257] = {
+ /* 0 */ NQ_set(CENDFILE) | DQ_set(CENDFILE) | SQ_set(CENDFILE) | AR_set(CENDFILE),
+ /* 1 */ NQ_set(CSPCL) | DQ_set(CIGN) | SQ_set(CIGN) | AR_set(CIGN),
+ /* 2 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 3 */ NQ_set(CCTL) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CCTL),
+ /* 4 */ NQ_set(CCTL) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CCTL),
+ /* 5 */ NQ_set(CCTL) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CCTL),
+ /* 6 */ NQ_set(CCTL) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CCTL),
+ /* 7 */ NQ_set(CCTL) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CCTL),
+ /* 8 */ NQ_set(CCTL) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CCTL),
+ /* 9 */ NQ_set(CCTL) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CCTL),
+ /* 10 */ NQ_set(CCTL) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CCTL),
+ /* 11 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 12 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 13 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 14 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 15 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 16 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 17 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 18 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 19 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 20 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 21 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 22 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 23 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 24 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 25 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 26 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 27 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 28 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 29 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 30 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 31 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 32 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 33 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 34 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 35 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 36 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 37 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 38 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 39 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 40 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 41 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 42 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 43 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 44 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 45 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 46 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 47 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 48 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 49 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 50 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 51 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 52 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 53 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 54 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 55 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 56 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 57 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 58 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 59 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 60 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 61 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 62 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 63 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 64 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 65 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 66 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 67 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 68 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 69 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 70 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 71 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 72 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 73 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 74 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 75 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 76 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 77 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 78 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 79 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 80 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 81 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 82 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 83 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 84 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 85 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 86 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 87 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 88 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 89 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 90 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 91 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 92 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 93 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 94 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 95 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 96 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 97 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 98 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 99 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 100 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 101 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 102 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 103 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 104 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 105 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 106 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 107 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 108 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 109 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 110 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 111 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 112 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 113 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 114 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 115 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 116 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 117 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 118 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 119 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 120 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 121 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 122 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 123 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 124 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 125 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 126 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 127 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 128 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 129 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 130 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 131 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 132 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 133 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 134 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 135 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 136 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 137 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 138 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 139 */ NQ_set(CSPCL) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 140 */ NQ_set(CNL) | DQ_set(CNL) | SQ_set(CNL) | AR_set(CNL),
+ /* 141 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 142 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 143 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 144 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 145 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 146 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 147 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 148 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 149 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 150 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 151 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 152 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 153 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 154 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 155 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 156 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 157 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 158 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 159 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 160 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 161 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 162 */ NQ_set(CSPCL) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 163 */ NQ_set(CWORD) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CWORD),
+ /* 164 */ NQ_set(CDQUOTE) | DQ_set(CENDQUOTE) | SQ_set(CWORD) | AR_set(CDQUOTE),
+ /* 165 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 166 */ NQ_set(CVAR) | DQ_set(CVAR) | SQ_set(CWORD) | AR_set(CVAR),
+ /* 167 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 168 */ NQ_set(CSPCL) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 169 */ NQ_set(CSQUOTE) | DQ_set(CWORD) | SQ_set(CENDQUOTE) | AR_set(CSQUOTE),
+ /* 170 */ NQ_set(CSPCL) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CLP),
+ /* 171 */ NQ_set(CSPCL) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CRP),
+ /* 172 */ NQ_set(CWORD) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CWORD),
+ /* 173 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 174 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 175 */ NQ_set(CWORD) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CWORD),
+ /* 176 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 177 */ NQ_set(CWORD) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CWORD),
+ /* 178 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 179 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 180 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 181 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 182 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 183 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 184 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 185 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 186 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 187 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 188 */ NQ_set(CWORD) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CWORD),
+ /* 189 */ NQ_set(CSPCL) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 190 */ NQ_set(CSPCL) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 191 */ NQ_set(CWORD) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CWORD),
+ /* 192 */ NQ_set(CSPCL) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 193 */ NQ_set(CWORD) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CWORD),
+ /* 194 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 195 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 196 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 197 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 198 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 199 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 200 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 201 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 202 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 203 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 204 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 205 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 206 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 207 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 208 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 209 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 210 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 211 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 212 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 213 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 214 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 215 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 216 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 217 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 218 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 219 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 220 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 221 */ NQ_set(CWORD) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CWORD),
+ /* 222 */ NQ_set(CBACK) | DQ_set(CBACK) | SQ_set(CCTL) | AR_set(CBACK),
+ /* 223 */ NQ_set(CWORD) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CWORD),
+ /* 224 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 225 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 226 */ NQ_set(CBQUOTE) | DQ_set(CBQUOTE) | SQ_set(CWORD) | AR_set(CBQUOTE),
+ /* 227 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 228 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 229 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 230 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 231 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 232 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 233 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 234 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 235 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 236 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 237 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 238 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 239 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 240 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 241 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 242 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 243 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 244 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 245 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 246 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 247 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 248 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 249 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 250 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 251 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 252 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 253 */ NQ_set(CWORD) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 254 */ NQ_set(CSPCL) | DQ_set(CWORD) | SQ_set(CWORD) | AR_set(CWORD),
+ /* 255 */ NQ_set(CENDVAR) | DQ_set(CENDVAR) | SQ_set(CWORD) | AR_set(CENDVAR),
+ /* 256 */ NQ_set(CWORD) | DQ_set(CCTL) | SQ_set(CCTL) | AR_set(CWORD),
};
+#define SIT(c, syntax) ((syntax_index_table[((int)c)+SYNBASE]>>syntax)&15)
+
/* first char is indicating which tokens mark the end of a list */
static const char *const tokname_array[] = {
"\1end of file",
@@ -1150,6 +1153,7 @@
static const char spcstr[] = " ";
static const char snlfmt[] = "%s\n";
+static const char types[] = "}-+?=";
static int sstrnleft;
static int herefd = -1;
@@ -4322,7 +4326,7 @@
static void expbackq (union node *, int, int);
static int subevalvar (char *, char *, int, int, int, int, int);
static int varisset (char *, int);
-static void strtodest (const char *, const char *, int);
+static void strtodest (const char *, int, int);
static void varvalue (char *, int, int);
static void recordregion (int, int, int);
static void removerecordregions (int);
@@ -4804,10 +4808,7 @@
*/
static void
-expbackq(cmd, quoted, flag)
- union node *cmd;
- int quoted;
- int flag;
+expbackq(union node *cmd, int quoted, int flag)
{
volatile struct backcmd in;
int i;
@@ -4819,7 +4820,7 @@
struct nodelist *volatile saveargbackq;
char lastc;
int startloc = dest - stackblock();
- char const *syntax = quoted? DQSYNTAX : BASESYNTAX;
+ int syntax = quoted ? DQSYNTAX : BASESYNTAX;
volatile int saveherefd;
int quotes = flag & (EXP_FULL | EXP_CASE);
struct jmploc jmploc;
@@ -4876,7 +4877,7 @@
}
lastc = *p++;
if (lastc != '\0') {
- if (quotes && syntax[(int)lastc] == CCTL)
+ if (quotes && SIT(lastc, syntax) == CCTL)
STPUTC(CTLESC, dest);
STPUTC(lastc, dest);
}
@@ -5077,13 +5078,10 @@
*/
static void
-strtodest(p, syntax, quotes)
- const char *p;
- const char *syntax;
- int quotes;
+strtodest(const char *p, int syntax, int quotes)
{
while (*p) {
- if (quotes && syntax[(int) *p] == CCTL)
+ if (quotes && SIT(*p, syntax) == CCTL)
STPUTC(CTLESC, expdest);
STPUTC(*p++, expdest);
}
@@ -5105,7 +5103,7 @@
int sep;
int sepq = 0;
char **ap;
- char const *syntax;
+ int syntax;
int allow_split = flags & EXP_FULL;
int quotes = flags & (EXP_FULL | EXP_CASE);
@@ -5140,7 +5138,7 @@
case '*':
sep = ifsset() ? ifsval()[0] : ' ';
if (quotes) {
- sepq = syntax[(int) sep] == CCTL;
+ sepq = SIT(sep, syntax) == CCTL;
}
param:
for (ap = shellparam.p ; (p = *ap++) != NULL ; ) {
@@ -7226,7 +7224,7 @@
*q++ = '{';
subtype = *p++;
} else if (c == '=' && subtype != 0) {
- *q++ = "}-+?="[(subtype & VSTYPE) - VSNORMAL];
+ *q++ = types[(subtype & VSTYPE) - VSNORMAL];
subtype = 0;
} else if (c == CTLENDVAR) {
*q++ = '}';
@@ -9253,8 +9251,8 @@
static char peektoken (void);
static int readtoken (void);
static int xxreadtoken (void);
-static int readtoken1 (int, char const *, char *, int);
-static int noexpand (char *);
+static int readtoken1 (int, int, const char *, int);
+static int noexpand (const char *);
static void synexpect (int) __attribute__((noreturn));
static void synerror (const char *) __attribute__((noreturn));
static void setprompt (int);
@@ -10007,12 +10005,8 @@
#define PARSEARITH() {goto parsearith; parsearith_return:;}
static int
-readtoken1(firstc, syntax, eofmark, striptabs)
- int firstc;
- char const *syntax;
- char *eofmark;
- int striptabs;
- {
+readtoken1(int firstc, int syntax, const char *eofmark, int striptabs)
+{
int c = firstc;
char *out;
int len;
@@ -10025,7 +10019,7 @@
int parenlevel; /* levels of parens in arithmetic */
int dqvarnest; /* levels of variables expansion within double quotes */
int oldstyle;
- char const *prevsyntax; /* syntax before arithmetic */
+ int prevsyntax; /* syntax before arithmetic */
#if __GNUC__
/* Avoid longjmp clobbering */
(void) &out;
@@ -10056,7 +10050,7 @@
CHECKEND(); /* set c to PEOF if at end of here document */
for (;;) { /* until end of line or end of word */
CHECKSTRSPACE(3, out); /* permit 3 calls to USTPUTC */
- switch(syntax[c]) {
+ switch(SIT(c, syntax)) {
case CNL: /* '\n' */
if (syntax == BASESYNTAX)
goto endword; /* exit outer loop */
@@ -10091,7 +10085,7 @@
if (dblquote && c != '\\' && c != '`' && c != '$'
&& (c != '"' || eofmark != NULL))
USTPUTC('\\', out);
- if (SQSYNTAX[c] == CCTL)
+ if (SIT(c, SQSYNTAX) == CCTL)
USTPUTC(CTLESC, out);
else if (eofmark == NULL)
USTPUTC(CTLQUOTEMARK, out);
@@ -10242,7 +10236,7 @@
}
if (c == *eofmark) {
if (pfgets(line, sizeof line) != NULL) {
- char *p, *q;
+ const char *p, *q;
p = line;
for (q = eofmark + 1 ; *q && *p == *q ; p++, q++);
@@ -10334,7 +10328,7 @@
int typeloc;
int flags;
char *p;
- static const char types[] = "}-+?=";
+
c = pgetc();
if (
@@ -10620,10 +10614,9 @@
*/
static int
-noexpand(text)
- char *text;
- {
- char *p;
+noexpand(const char *text)
+{
+ const char *p;
char c;
p = text;
@@ -10632,7 +10625,7 @@
continue;
if (c == CTLESC)
p++;
- else if (BASESYNTAX[(int)c] == CCTL)
+ else if (SIT(c, BASESYNTAX) == CCTL)
return 0;
}
return 1;
@@ -12611,8 +12604,6 @@
return (0);
}
-
-
/*
* Find the appropriate entry in the hash table from the name.
*/
@@ -12627,8 +12618,6 @@
hashval += (unsigned char) *p++;
return &vartab[hashval % VTABSIZE];
}
-
-
/*
* Returns true if the two strings specify the same varable. The first
More information about the busybox
mailing list