Appearance
| 1 | namespace Semantic is | |
| 2 | use IO.Std; | |
| 3 | ||
| 4 | use System.Text.StringBuilder; | |
| 5 | ||
| 6 | use Collections.Iterable; | |
| 7 | use Collections.Iterator; | |
| 8 | ||
| 9 | use Collections.SET; | |
| 10 | ||
| 11 | use Symbols.Function; | |
| 12 | ||
| 13 | use Ghul.Pipes; | |
| 14 | ||
| 15 | class METHOD_OVERRIDE_SET(override_class: METHOD_OVERRIDE_CLASS) is | |
| 16 | _set: SET[FUNCTION_WRAPPER]; | |
| 17 | ||
| 18 | iterator: Iterator[Function] => iterable.iterator; | |
| 19 | ||
| 20 | iterable: Iterable[Function] => | |
| 21 | _set |> | |
| 22 | map(from => from.function); | |
| 23 | ||
| 24 | count: int => _set.count; | |
| 25 | ||
| 26 | init(..) is | |
| 27 | _set = SET[FUNCTION_WRAPPER](); | |
| 28 | si | |
| 29 | ||
| 30 | add(method: Function) is | |
| 31 | assert method.override_class =~ override_class; | |
| 32 | _set.add(FUNCTION_WRAPPER(method)); | |
| 33 | si | |
| 34 | ||
| 35 | to_string() -> string => "{override_class}: {_set|}"; | |
| 36 | ||
| 37 | get_overrider(into: Symbols.Symbol) -> Function => | |
| 38 | (iterable |> first())!; | |
| 39 | si | |
| 40 | si |