Tcl Source Code

Hex Artifact Content
Login

Artifact 05c2ebe8dfaded90ebffa076e08983eb868f77c0:

Attachment "expon.patch" to ticket [1556802fff] added by dgp 2006-09-12 10:18:39.
0000: 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74  Index: generic/t
0010: 63 6c 50 61 72 73 65 45 78 70 72 2e 63 0a 3d 3d  clParseExpr.c.==
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0050: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0060: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73  =.RCS file: /cvs
0070: 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e  root/tcl/tcl/gen
0080: 65 72 69 63 2f 74 63 6c 50 61 72 73 65 45 78 70  eric/tclParseExp
0090: 72 2e 63 2c 76 0a 72 65 74 72 69 65 76 69 6e 67  r.c,v.retrieving
00a0: 20 72 65 76 69 73 69 6f 6e 20 31 2e 34 34 0a 64   revision 1.44.d
00b0: 69 66 66 20 2d 75 20 2d 72 31 2e 34 34 20 74 63  iff -u -r1.44 tc
00c0: 6c 50 61 72 73 65 45 78 70 72 2e 63 0a 2d 2d 2d  lParseExpr.c.---
00d0: 20 67 65 6e 65 72 69 63 2f 74 63 6c 50 61 72 73   generic/tclPars
00e0: 65 45 78 70 72 2e 63 09 33 30 20 41 75 67 20 32  eExpr.c.30 Aug 2
00f0: 30 30 36 20 32 30 3a 34 36 3a 32 30 20 2d 30 30  006 20:46:20 -00
0100: 30 30 09 31 2e 34 34 0a 2b 2b 2b 20 67 65 6e 65  00.1.44.+++ gene
0110: 72 69 63 2f 74 63 6c 50 61 72 73 65 45 78 70 72  ric/tclParseExpr
0120: 2e 63 09 31 32 20 53 65 70 20 32 30 30 36 20 30  .c.12 Sep 2006 0
0130: 33 3a 31 33 3a 31 32 20 2d 30 30 30 30 0a 40 40  3:13:12 -0000.@@
0140: 20 2d 35 32 39 2c 38 20 2b 35 32 39 2c 38 20 40   -529,8 +529,8 @
0150: 40 0a 20 09 09 20 20 20 20 62 72 65 61 6b 3b 0a  @. ..    break;.
0160: 20 09 09 7d 0a 20 0a 2d 09 09 2f 2a 20 53 70 65   ..}. .-../* Spe
0170: 63 69 61 6c 20 61 73 73 6f 63 69 61 74 69 6f 6e  cial association
0180: 20 72 75 6c 65 73 20 66 6f 72 20 74 68 65 20 74   rules for the t
0190: 65 72 6e 61 72 79 20 6f 70 65 72 61 74 6f 72 73  ernary operators
01a0: 20 2a 2f 0a 20 09 09 69 66 20 28 70 72 65 63 5b   */. ..if (prec[
01b0: 6f 74 68 65 72 50 74 72 2d 3e 6c 65 78 65 6d 65  otherPtr->lexeme
01c0: 5d 20 3d 3d 20 70 72 65 63 65 64 65 6e 63 65 29  ] == precedence)
01d0: 20 7b 0a 2b 09 09 20 20 20 20 2f 2a 20 53 70 65   {.+..    /* Spe
01e0: 63 69 61 6c 20 61 73 73 6f 63 69 61 74 69 6f 6e  cial association
01f0: 20 72 75 6c 65 73 20 66 6f 72 20 74 68 65 20 74   rules for the t
0200: 65 72 6e 61 72 79 20 6f 70 65 72 61 74 6f 72 73  ernary operators
0210: 2e 20 2a 2f 0a 20 09 09 20 20 20 20 69 66 20 28  . */. ..    if (
0220: 28 6f 74 68 65 72 50 74 72 2d 3e 6c 65 78 65 6d  (otherPtr->lexem
0230: 65 20 3d 3d 20 51 55 45 53 54 49 4f 4e 29 20 0a  e == QUESTION) .
0240: 20 09 09 09 20 20 20 20 26 26 20 28 6c 61 73 74   ...    && (last
0250: 4f 72 70 68 61 6e 50 74 72 2d 3e 6c 65 78 65 6d  OrphanPtr->lexem
0260: 65 20 21 3d 20 43 4f 4c 4f 4e 29 29 20 7b 0a 20  e != COLON)) {. 
0270: 09 09 09 62 72 65 61 6b 3b 0a 40 40 20 2d 35 33  ...break;.@@ -53
0280: 39 2c 36 20 2b 35 33 39 2c 31 30 20 40 40 0a 20  9,6 +539,10 @@. 
0290: 09 09 09 20 20 20 20 26 26 20 28 6e 6f 64 65 50  ...    && (nodeP
02a0: 74 72 2d 3e 6c 65 78 65 6d 65 20 3d 3d 20 51 55  tr->lexeme == QU
02b0: 45 53 54 49 4f 4e 29 29 20 7b 0a 20 09 09 09 62  ESTION)) {. ...b
02c0: 72 65 61 6b 3b 0a 20 09 09 20 20 20 20 7d 0a 2b  reak;. ..    }.+
02d0: 09 09 20 20 20 20 2f 2a 20 52 69 67 68 74 20 61  ..    /* Right a
02e0: 73 73 6f 63 69 61 74 69 6f 6e 20 72 75 6c 65 73  ssociation rules
02f0: 20 66 6f 72 20 65 78 70 6f 6e 65 6e 74 69 61 74   for exponentiat
0300: 69 6f 6e 2e 20 2a 2f 0a 2b 09 09 20 20 20 20 69  ion. */.+..    i
0310: 66 20 28 6e 6f 64 65 50 74 72 2d 3e 6c 65 78 65  f (nodePtr->lexe
0320: 6d 65 20 3d 3d 20 45 58 50 4f 4e 29 20 7b 0a 2b  me == EXPON) {.+
0330: 09 09 09 62 72 65 61 6b 3b 0a 2b 09 09 20 20 20  ...break;.+..   
0340: 20 7d 0a 20 09 09 7d 0a 20 0a 20 09 09 2f 2a 20   }. ..}. . ../* 
0350: 53 6f 6d 65 20 63 68 65 63 6b 73 20 62 65 66 6f  Some checks befo
0360: 72 65 20 6c 69 6e 6b 69 6e 67 20 2a 2f 0a        re linking */.