enable else-if expression
							parent
							
								
									22b41c7873
								
							
						
					
					
						commit
						e15c2da1f4
					
				|  | @ -1009,7 +1009,7 @@ fn (p mut Parser) statement(add_semi bool) string { | |||
| 	case Token.dollar: | ||||
| 		p.comp_time() | ||||
| 	case Token.key_if: | ||||
| 		p.if_st(false) | ||||
| 		p.if_st(false, false) | ||||
| 	case Token.key_for: | ||||
| 		p.for_st() | ||||
| 	case Token.key_switch:  | ||||
|  | @ -2084,7 +2084,7 @@ fn (p mut Parser) factor() string { | |||
| 		// { user | name :'new name' }
 | ||||
| 		return p.assoc() | ||||
| 	case Token.key_if: | ||||
| 		typ = p.if_st(true) | ||||
| 		typ = p.if_st(true, false) | ||||
| 		return typ | ||||
| 	default: | ||||
| 		next := p.peek() | ||||
|  | @ -2731,7 +2731,7 @@ fn (p mut Parser) chash() { | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| fn (p mut Parser) if_st(is_expr bool) string { | ||||
| fn (p mut Parser) if_st(is_expr, is_elif_expr bool) string { | ||||
| 	if is_expr { | ||||
| 		if p.fileis('if_expr') { | ||||
| 			println('IF EXPR') | ||||
|  | @ -2770,8 +2770,14 @@ fn (p mut Parser) if_st(is_expr bool) string { | |||
| 		p.check(.key_else)   | ||||
| 		p.fspace()  | ||||
| 		if p.tok == .key_if { | ||||
| 			p.gen(' else ') | ||||
| 			return p.if_st(is_expr) | ||||
| 			if is_expr { | ||||
| 				p.gen(') : (') | ||||
| 				return p.if_st(is_expr, true) | ||||
| 			} | ||||
| 			else { | ||||
| 				p.gen(' else ') | ||||
| 				return p.if_st(is_expr, false) | ||||
| 			} | ||||
| 			// return ''
 | ||||
| 		} | ||||
| 		if is_expr { | ||||
|  | @ -2785,7 +2791,12 @@ fn (p mut Parser) if_st(is_expr bool) string { | |||
| 		typ = p.statements() | ||||
| 		p.inside_if_expr = false | ||||
| 		if is_expr { | ||||
| 			p.gen(')') | ||||
| 			if is_elif_expr { | ||||
| 				p.gen('))') | ||||
| 			} | ||||
| 			else { | ||||
| 				p.gen(')') | ||||
| 			} | ||||
| 		} | ||||
| 		return typ | ||||
| 	} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue