| 
									
										
										
										
											2008-03-19 10:30:53 -04:00
										 |  |  | ! Copyright (C) 2008 Chris Double. | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							|  |  |  | USING: kernel arrays strings math.parser sequences | 
					
						
							| 
									
										
										
										
											2008-04-28 22:19:14 -04:00
										 |  |  | peg peg.ebnf peg.parsers memoize math accessors ;
 | 
					
						
							| 
									
										
										
										
											2008-03-19 10:30:53 -04:00
										 |  |  | IN: peg.expr | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-20 00:11:09 -04:00
										 |  |  | EBNF: expr  | 
					
						
							| 
									
										
										
										
											2008-03-30 00:23:11 -04:00
										 |  |  | digit    = [0-9]            => [[ digit> ]] | 
					
						
							|  |  |  | number   = (digit)+         => [[ 10 digits>integer ]] | 
					
						
							|  |  |  | value    =   number  | 
					
						
							|  |  |  |            | ("(" exp ")")  => [[ second ]] | 
					
						
							| 
									
										
										
										
											2008-03-19 10:30:53 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-30 00:23:11 -04:00
										 |  |  | fac      =   fac "*" value  => [[ first3 nip * ]] | 
					
						
							|  |  |  |            | fac "/" value  => [[ first3 nip / ]] | 
					
						
							|  |  |  |            | number
 | 
					
						
							| 
									
										
										
										
											2008-03-19 10:30:53 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-30 00:23:11 -04:00
										 |  |  | exp      =   exp "+" fac    => [[ first3 nip + ]] | 
					
						
							|  |  |  |            | exp "-" fac    => [[ first3 nip - ]] | 
					
						
							|  |  |  |            | fac | 
					
						
							| 
									
										
										
										
											2008-03-20 00:11:09 -04:00
										 |  |  | ;EBNF |