diff options
author | dgp <dgp@users.sourceforge.net> | 2018-11-19 17:29:12 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2018-11-19 17:29:12 (GMT) |
commit | cc6faa155b3ac525cab5b017159361b62c4a9c6a (patch) | |
tree | 7fcee0f1e0eb5fa165d2af2f118b1cd52c6352f8 /generic/tclCompCmdsSZ.c | |
parent | 274d86b2ec1d33d42ce059946338c6e6e1086ea8 (diff) | |
parent | 1fae54c8c004d072d62e3d867ef4e66b238d0bcd (diff) | |
download | tcl-cc6faa155b3ac525cab5b017159361b62c4a9c6a.zip tcl-cc6faa155b3ac525cab5b017159361b62c4a9c6a.tar.gz tcl-cc6faa155b3ac525cab5b017159361b62c4a9c6a.tar.bz2 |
merge 8.7
Diffstat (limited to 'generic/tclCompCmdsSZ.c')
-rw-r--r-- | generic/tclCompCmdsSZ.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/generic/tclCompCmdsSZ.c b/generic/tclCompCmdsSZ.c index 50f56fe..c608017 100644 --- a/generic/tclCompCmdsSZ.c +++ b/generic/tclCompCmdsSZ.c @@ -518,7 +518,7 @@ TclCompileStringIsCmd( Tcl_Token *tokenPtr = TokenAfter(parsePtr->tokenPtr); static const char *const isClasses[] = { "alnum", "alpha", "ascii", "control", - "boolean", "digit", "double", "entier", + "boolean", "dict", "digit", "double", "entier", "false", "graph", "integer", "list", "lower", "print", "punct", "space", "true", "upper", "wideinteger", "wordchar", @@ -526,7 +526,7 @@ TclCompileStringIsCmd( }; enum isClasses { STR_IS_ALNUM, STR_IS_ALPHA, STR_IS_ASCII, STR_IS_CONTROL, - STR_IS_BOOL, STR_IS_DIGIT, STR_IS_DOUBLE, STR_IS_ENTIER, + STR_IS_BOOL, STR_IS_DICT, STR_IS_DIGIT, STR_IS_DOUBLE, STR_IS_ENTIER, STR_IS_FALSE, STR_IS_GRAPH, STR_IS_INT, STR_IS_LIST, STR_IS_LOWER, STR_IS_PRINT, STR_IS_PUNCT, STR_IS_SPACE, STR_IS_TRUE, STR_IS_UPPER, STR_IS_WIDE, STR_IS_WORD, @@ -760,7 +760,19 @@ TclCompileStringIsCmd( } FIXJUMP1( end); return TCL_OK; - + case STR_IS_DICT: + range = TclCreateExceptRange(CATCH_EXCEPTION_RANGE, envPtr); + OP4( BEGIN_CATCH4, range); + ExceptionRangeStarts(envPtr, range); + OP( DUP); + OP( DICT_VERIFY); + ExceptionRangeEnds(envPtr, range); + ExceptionRangeTarget(envPtr, range, catchOffset); + OP( POP); + OP( PUSH_RETURN_CODE); + OP( END_CATCH); + OP( LNOT); + return TCL_OK; case STR_IS_LIST: range = TclCreateExceptRange(CATCH_EXCEPTION_RANGE, envPtr); OP4( BEGIN_CATCH4, range); |