summaryrefslogtreecommitdiffstats
path: root/generic/tclParse.h
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2012-03-07 20:54:01 (GMT)
committerdgp <dgp@users.sourceforge.net>2012-03-07 20:54:01 (GMT)
commit4b85ca90cba7edb9a10caead17ffa8d407e1e2b3 (patch)
tree7fdc0e94be0b9736465bd7a1d66db263e433ce7a /generic/tclParse.h
parentacd5c4da2bafcf9f001a0bc72e1554fb47224266 (diff)
downloadtcl-4b85ca90cba7edb9a10caead17ffa8d407e1e2b3.zip
tcl-4b85ca90cba7edb9a10caead17ffa8d407e1e2b3.tar.gz
tcl-4b85ca90cba7edb9a10caead17ffa8d407e1e2b3.tar.bz2
Refactor TclScanElement() part of list parsing to take advantage of tables
constructed for the task of script parsing. Ought to speed generation of string representation of lists, though the effect is likely only noticeable on long lists made up primarily of simple elements (not needing quoting).
Diffstat (limited to 'generic/tclParse.h')
-rw-r--r--generic/tclParse.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/generic/tclParse.h b/generic/tclParse.h
new file mode 100644
index 0000000..be1ab15
--- /dev/null
+++ b/generic/tclParse.h
@@ -0,0 +1,17 @@
+/*
+ * Minimal set of shared macro definitions and declarations so that multiple
+ * source files can make use of the parsing table in tclParse.c
+ */
+
+#define TYPE_NORMAL 0
+#define TYPE_SPACE 0x1
+#define TYPE_COMMAND_END 0x2
+#define TYPE_SUBS 0x4
+#define TYPE_QUOTE 0x8
+#define TYPE_CLOSE_PAREN 0x10
+#define TYPE_CLOSE_BRACK 0x20
+#define TYPE_BRACE 0x40
+
+#define CHAR_TYPE(c) (charTypeTable+128)[(int)(c)]
+
+MODULE_SCOPE const char charTypeTable[];