Diff
Not logged in

Differences From Artifact [c261410428]:

To Artifact [38950647bb]:


279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299





300
301
302
303
304
305
306
				 * for us. In the end though, a close paren is
				 * not really a binary operator, and some
				 * special coding in ParseExpr() make sure we
				 * never put an actual CLOSE_PAREN node in the
				 * parse tree. The sub-expression between
				 * parens becomes the single argument of the
				 * matching OPEN_PAREN unary operator. */

#define SEPARATOR	( BINARY | 29)
#define ASSIGN		( BINARY | 30)
				/* ASSIGN, like EXPON, is right
				 * associative, and this distinction
				 * is coded directly in ParseExpr() */

#define END		(BINARY | 31)
				/* This lexeme represents the end of the
				 * string being parsed. Treating it as a
				 * binary operator follows the same logic as
				 * the CLOSE_PAREN lexeme and END pairs with
				 * START, in the same way that CLOSE_PAREN
				 * pairs with OPEN_PAREN. */






/*
 * When ParseExpr() builds the parse tree it must choose which operands to
 * connect to which operators.  This is done according to operator precedence.
 * The greater an operator's precedence the greater claim it has to link to an
 * available operand.  The Precedence enumeration lists the precedence values
 * used by Tcl expression operators, from lowest to highest claim.  Each







<
<
<
<
<
<
<
|






>
>
>
>
>







279
280
281
282
283
284
285







286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
				 * for us. In the end though, a close paren is
				 * not really a binary operator, and some
				 * special coding in ParseExpr() make sure we
				 * never put an actual CLOSE_PAREN node in the
				 * parse tree. The sub-expression between
				 * parens becomes the single argument of the
				 * matching OPEN_PAREN unary operator. */







#define END		(BINARY | 28)
				/* This lexeme represents the end of the
				 * string being parsed. Treating it as a
				 * binary operator follows the same logic as
				 * the CLOSE_PAREN lexeme and END pairs with
				 * START, in the same way that CLOSE_PAREN
				 * pairs with OPEN_PAREN. */
#define SEPARATOR      ( BINARY | 29)
#define ASSIGN         ( BINARY | 30)
				/* ASSIGN, like EXPON, is right associative,
 				 * and this distinction is coded directly in
				 * ParseExpr() */

/*
 * When ParseExpr() builds the parse tree it must choose which operands to
 * connect to which operators.  This is done according to operator precedence.
 * The greater an operator's precedence the greater claim it has to link to an
 * available operand.  The Precedence enumeration lists the precedence values
 * used by Tcl expression operators, from lowest to highest claim.  Each