grep: extract grep_binexp() from grep_or_expr()
When constructing an OR node, the grep.c code uses `grep_or_expr()` to make a node, assign its kind, and set its left and right children. The same is not done for AND nodes. Prepare to introduce a new `grep_and_expr()` function which will share code with the existing implementation of `grep_or_expr()` by introducing a new function which compiles either kind of binary expression, and reimplement `grep_or_expr()` in terms of it. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									e2b154277a
								
							
						
					
					
						commit
						f2d275984d
					
				
							
								
								
									
										11
									
								
								grep.c
								
								
								
								
							
							
						
						
									
										11
									
								
								grep.c
								
								
								
								
							|  | @ -603,15 +603,22 @@ static struct grep_expr *grep_not_expr(struct grep_expr *expr) | |||
| 	return z; | ||||
| } | ||||
|  | ||||
| static struct grep_expr *grep_or_expr(struct grep_expr *left, struct grep_expr *right) | ||||
| static struct grep_expr *grep_binexp(enum grep_expr_node kind, | ||||
| 				     struct grep_expr *left, | ||||
| 				     struct grep_expr *right) | ||||
| { | ||||
| 	struct grep_expr *z = xcalloc(1, sizeof(*z)); | ||||
| 	z->node = GREP_NODE_OR; | ||||
| 	z->node = kind; | ||||
| 	z->u.binary.left = left; | ||||
| 	z->u.binary.right = right; | ||||
| 	return z; | ||||
| } | ||||
|  | ||||
| static struct grep_expr *grep_or_expr(struct grep_expr *left, struct grep_expr *right) | ||||
| { | ||||
| 	return grep_binexp(GREP_NODE_OR, left, right); | ||||
| } | ||||
|  | ||||
| static struct grep_expr *compile_pattern_or(struct grep_pat **); | ||||
| static struct grep_expr *compile_pattern_atom(struct grep_pat **list) | ||||
| { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Taylor Blau
						Taylor Blau