Created
July 24, 2019 23:04
-
-
Save Nucs/8d905806937e99bb33dddeca8fae8162 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using System; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using System.Text; | |
| using System.Threading.Tasks; | |
| namespace RegenTesting | |
| { | |
| class Shape | |
| { | |
| public Shape(params int[] p) { } | |
| #if _REGEN | |
| %pre = "dims.Item" | |
| %foreach range(2,14)% | |
| public static implicit operator Shape(#(repeat("int", #1 , ", " , "(" , "" , "" , ")" )) dims) => new Shape(#(repeat("^pre+(n+1)", i , ", " ))); | |
| % | |
| #else | |
| public static implicit operator Shape((int, int) dims) => new Shape(); | |
| public static implicit operator Shape((int, int, int) dims) => new Shape(dims.Item1); | |
| public static implicit operator Shape((int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2); | |
| public static implicit operator Shape((int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3); | |
| public static implicit operator Shape((int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4); | |
| public static implicit operator Shape((int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5); | |
| public static implicit operator Shape((int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6); | |
| public static implicit operator Shape((int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7); | |
| public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8); | |
| public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8, dims.Item9); | |
| public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8, dims.Item9, dims.Item10); | |
| public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8, dims.Item9, dims.Item10, dims.Item11); | |
| public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8, dims.Item9, dims.Item10, dims.Item11, dims.Item12); | |
| public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8, dims.Item9, dims.Item10, dims.Item11, dims.Item12, dims.Item13); | |
| #endif | |
| public void __k() | |
| { | |
| #if _REGEN | |
| object o = null; | |
| %foreach ["int", "float"]% | |
| switch(o) { | |
| %foreach ["int", "float"]% | |
| case #101 _#101: | |
| switch(_#101) { | |
| %foreach ["int", "float"]% | |
| case #201 __#201: | |
| switch(__#201) { | |
| %foreach ["int", "float"]% | |
| case #301 ___#301: | |
| break; | |
| % | |
| } | |
| break; | |
| % | |
| } | |
| break; | |
| % | |
| } | |
| % | |
| #else | |
| object o = null; | |
| switch(o) { | |
| case int _int: | |
| switch(_int) { | |
| case int __int: | |
| switch(__int) { | |
| case int ___int: | |
| break; | |
| case float ___float: | |
| break; | |
| } | |
| break; | |
| case float __float: | |
| switch(__float) { | |
| case int ___int: | |
| break; | |
| case float ___float: | |
| break; | |
| } | |
| break; | |
| } | |
| break; | |
| case float _float: | |
| switch(_float) { | |
| case int __int: | |
| switch(__int) { | |
| case int ___int: | |
| break; | |
| case float ___float: | |
| break; | |
| } | |
| break; | |
| case float __float: | |
| switch(__float) { | |
| case int ___int: | |
| break; | |
| case float ___float: | |
| break; | |
| } | |
| break; | |
| } | |
| break; | |
| } | |
| switch(o) { | |
| case int _int: | |
| switch(_int) { | |
| case int __int: | |
| switch(__int) { | |
| case int ___int: | |
| break; | |
| case float ___float: | |
| break; | |
| } | |
| break; | |
| case float __float: | |
| switch(__float) { | |
| case int ___int: | |
| break; | |
| case float ___float: | |
| break; | |
| } | |
| break; | |
| } | |
| break; | |
| case float _float: | |
| switch(_float) { | |
| case int __int: | |
| switch(__int) { | |
| case int ___int: | |
| break; | |
| case float ___float: | |
| break; | |
| } | |
| break; | |
| case float __float: | |
| switch(__float) { | |
| case int ___int: | |
| break; | |
| case float ___float: | |
| break; | |
| } | |
| break; | |
| } | |
| break; | |
| } | |
| #endif | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment