Tcl Library Source Code

Hex Artifact Content
Login

Artifact b3e975617e28ffb10ddec14903f1fa186c924a4d:


0000: 50 45 47 20 61 5f 70 65 5f 67 72 61 6d 6d 61 72  PEG a_pe_grammar
0010: 20 28 45 78 70 72 65 73 73 69 6f 6e 29 0a 0a 20   (Expression).. 
0020: 41 64 64 4f 70 20 20 20 20 20 20 3c 2d 20 5b 2d  AddOp      <- [-
0030: 2b 5d 20 3b 0a 20 44 69 67 69 74 20 20 20 20 20  +] ;. Digit     
0040: 20 3c 2d 20 5b 30 31 32 33 34 35 36 37 38 39 5d   <- [0123456789]
0050: 20 3b 0a 20 45 78 70 72 65 73 73 69 6f 6e 20 3c   ;. Expression <
0060: 2d 20 46 75 6e 63 74 69 6f 6e 20 2f 20 27 28 27  - Function / '('
0070: 20 45 78 70 72 65 73 73 69 6f 6e 20 27 29 27 20   Expression ')' 
0080: 2f 20 46 61 63 74 6f 72 20 28 4d 75 6c 4f 70 20  / Factor (MulOp 
0090: 46 61 63 74 6f 72 29 2a 20 3b 0a 20 46 61 63 74  Factor)* ;. Fact
00a0: 6f 72 20 20 20 20 20 3c 2d 20 54 65 72 6d 20 28  or     <- Term (
00b0: 41 64 64 4f 70 20 54 65 72 6d 29 2a 20 3b 0a 20  AddOp Term)* ;. 
00c0: 46 75 6e 63 74 69 6f 6e 20 20 20 3c 2d 20 53 69  Function   <- Si
00d0: 6e 75 73 20 3b 0a 20 4d 75 6c 4f 70 20 20 20 20  nus ;. MulOp    
00e0: 20 20 3c 2d 20 5b 2a 2f 5d 20 3b 0a 20 4e 75 6d    <- [*/] ;. Num
00f0: 62 65 72 20 20 20 20 20 3c 2d 20 53 69 67 6e 3f  ber     <- Sign?
0100: 20 44 69 67 69 74 2b 20 3b 0a 20 53 69 67 6e 20   Digit+ ;. Sign 
0110: 20 20 20 20 20 20 3c 2d 20 5b 2d 2b 5d 20 3b 0a        <- [-+] ;.
0120: 20 53 69 6e 75 73 20 20 20 20 20 20 3c 2d 20 27   Sinus      <- '
0130: 73 69 6e 28 27 20 45 78 70 72 65 73 73 69 6f 6e  sin(' Expression
0140: 20 27 29 27 20 3b 0a 20 54 65 72 6d 20 20 20 20   ')' ;. Term    
0150: 20 20 20 3c 2d 20 4e 75 6d 62 65 72 20 3b 0a 0a     <- Number ;..
0160: 45 4e 44 3b 0a                                   END;.