1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
/*
* tclCompExpr.c --
*
* This file contains the code to compile Tcl expressions.
*
* Copyright (c) 1997 Sun Microsystems, Inc.
* Copyright (c) 1998-2000 by Scriptics Corporation.
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* RCS: @(#) $Id: tclCompExpr.c,v 1.6.12.1 2001/09/26 14:23:10 dkf Exp $
*/
#include "tclInt.h"
#include "tclCompile.h"
/*
* The stuff below is a bit of a hack so that this file can be used in
|
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
/*
* tclCompExpr.c --
*
* This file contains the code to compile Tcl expressions.
*
* Copyright (c) 1997 Sun Microsystems, Inc.
* Copyright (c) 1998-2000 by Scriptics Corporation.
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* RCS: @(#) $Id: tclCompExpr.c,v 1.6.12.2 2001/09/27 13:46:00 dkf Exp $
*/
#include "tclInt.h"
#include "tclCompile.h"
/*
* The stuff below is a bit of a hack so that this file can be used in
|
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
|
tokenPtr += (tokenPtr->numComponents + 1);
infoPtr->exprIsJustVarRef = 0;
break;
case TCL_TOKEN_TEXT:
if (tokenPtr->size > 0) {
objIndex = TclRegisterLiteral(envPtr, tokenPtr->start,
(int)tokenPtr->size, /*onHeap*/ 0);
} else {
objIndex = TclRegisterLiteral(envPtr, "", 0, /*onHeap*/ 0);
}
TclEmitPush(objIndex, envPtr);
maxDepth = 1;
tokenPtr += 1;
infoPtr->exprIsJustVarRef = 0;
|
|
|
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
|
tokenPtr += (tokenPtr->numComponents + 1);
infoPtr->exprIsJustVarRef = 0;
break;
case TCL_TOKEN_TEXT:
if (tokenPtr->size > 0) {
objIndex = TclRegisterLiteral(envPtr, tokenPtr->start,
tokenPtr->size, /*onHeap*/ 0);
} else {
objIndex = TclRegisterLiteral(envPtr, "", 0, /*onHeap*/ 0);
}
TclEmitPush(objIndex, envPtr);
maxDepth = 1;
tokenPtr += 1;
infoPtr->exprIsJustVarRef = 0;
|
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
|
maxDepth = 1;
tokenPtr += 1;
infoPtr->exprIsJustVarRef = 0;
break;
case TCL_TOKEN_COMMAND:
code = TclCompileScript(interp, tokenPtr->start+1,
(int)tokenPtr->size-2, /*nested*/ 1, envPtr);
if (code != TCL_OK) {
goto done;
}
maxDepth = envPtr->maxStackDepth;
tokenPtr += 1;
infoPtr->exprIsJustVarRef = 0;
break;
|
|
|
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
|
maxDepth = 1;
tokenPtr += 1;
infoPtr->exprIsJustVarRef = 0;
break;
case TCL_TOKEN_COMMAND:
code = TclCompileScript(interp, tokenPtr->start+1,
tokenPtr->size-2, /*nested*/ 1, envPtr);
if (code != TCL_OK) {
goto done;
}
maxDepth = envPtr->maxStackDepth;
tokenPtr += 1;
infoPtr->exprIsJustVarRef = 0;
break;
|