mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			92 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {
 | |
|   pop(f(1,2,3))
 | |
|   pop(g(4,5,6))
 | |
|   pop(h(7,8,9))
 | |
|   function f(f1, f2, f3) -> rf
 | |
|   {
 | |
|     switch f1
 | |
|         case 0 {
 | |
|             if f2
 | |
|             {
 | |
|                 rf := f3
 | |
|             }
 | |
|             if not(f2)
 | |
|             {
 | |
|                 rf := f1
 | |
|             }
 | |
|         }
 | |
|         default {
 | |
|             rf := 3
 | |
|         }
 | |
|   }
 | |
|   function g(g1, g2, g3) -> rg
 | |
|   {
 | |
|     switch g1
 | |
|         case 0 {
 | |
|             if g2
 | |
|             {
 | |
|                 rg := g3
 | |
|             }
 | |
|             if not(g2)
 | |
|             {
 | |
|                 rg := g1
 | |
|             }
 | |
|         }
 | |
|         default {
 | |
|             rg := 3
 | |
|         }
 | |
|   }
 | |
|   function h(h1, h2, h3) -> rh
 | |
|   {
 | |
|     switch h1
 | |
|         case 1 {
 | |
|             if h2
 | |
|             {
 | |
|                 rh := h3
 | |
|             }
 | |
|             if not(h2)
 | |
|             {
 | |
|                 rh := h1
 | |
|             }
 | |
|         }
 | |
|         default {
 | |
|             rh := 3
 | |
|         }
 | |
|   }
 | |
| }
 | |
| // ----
 | |
| // step: equivalentFunctionCombiner
 | |
| //
 | |
| // {
 | |
| //     pop(f(1, 2, 3))
 | |
| //     pop(f(4, 5, 6))
 | |
| //     pop(h(7, 8, 9))
 | |
| //     function f(f1, f2, f3) -> rf
 | |
| //     {
 | |
| //         switch f1
 | |
| //         case 0 {
 | |
| //             if f2 { rf := f3 }
 | |
| //             if not(f2) { rf := f1 }
 | |
| //         }
 | |
| //         default { rf := 3 }
 | |
| //     }
 | |
| //     function g(g1, g2, g3) -> rg
 | |
| //     {
 | |
| //         switch g1
 | |
| //         case 0 {
 | |
| //             if g2 { rg := g3 }
 | |
| //             if not(g2) { rg := g1 }
 | |
| //         }
 | |
| //         default { rg := 3 }
 | |
| //     }
 | |
| //     function h(h1, h2, h3) -> rh
 | |
| //     {
 | |
| //         switch h1
 | |
| //         case 1 {
 | |
| //             if h2 { rh := h3 }
 | |
| //             if not(h2) { rh := h1 }
 | |
| //         }
 | |
| //         default { rh := 3 }
 | |
| //     }
 | |
| // }
 |