mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-01 02:42:05 +00:00
138 lines
2.6 KiB
Nim
138 lines
2.6 KiB
Nim
import macros, strutils
|
|
|
|
# https://github.com/nim-lang/Nim/issues/1512
|
|
|
|
proc macrobust0(raw_input: string) =
|
|
var output = ""
|
|
proc p1(a:string) =
|
|
output.add(a)
|
|
|
|
proc p2(a:string) = p1(a)
|
|
proc p3(a:string) = p2(a)
|
|
proc p4(a:string) = p3(a)
|
|
proc p5(a:string) = p4(a)
|
|
proc p6(a:string) = p5(a)
|
|
proc p7(a:string) = p6(a)
|
|
proc p8(a:string) = p7(a)
|
|
proc p9(a:string) = p8(a)
|
|
proc p10(a:string) = p9(a)
|
|
proc p11(a:string) = p10(a)
|
|
proc p12(a:string) = p11(a)
|
|
proc p13(a:string) = p12(a)
|
|
proc p14(a:string) = p13(a)
|
|
proc p15(a:string) = p14(a)
|
|
proc p16(a:string) = p15(a)
|
|
proc p17(a:string) = p16(a)
|
|
proc p18(a:string) = p17(a)
|
|
proc p19(a:string) = p18(a)
|
|
proc p20(a:string) = p19(a)
|
|
|
|
let input = $raw_input
|
|
|
|
for a in input.split():
|
|
p20(a)
|
|
p19(a)
|
|
|
|
|
|
p18(a)
|
|
p17(a)
|
|
p16(a)
|
|
p15(a)
|
|
p14(a)
|
|
p13(a)
|
|
p12(a)
|
|
p11(a)
|
|
p10(a)
|
|
p9(a)
|
|
p8(a)
|
|
p7(a)
|
|
p6(a)
|
|
p5(a)
|
|
p4(a)
|
|
p3(a)
|
|
p2(a)
|
|
p1(a)
|
|
|
|
|
|
echo output
|
|
|
|
macro macrobust(raw_input: untyped): untyped =
|
|
|
|
var output = ""
|
|
proc p1(a:string) =
|
|
output.add(a)
|
|
|
|
proc p2(a:string) = p1(a)
|
|
proc p3(a:string) = p2(a)
|
|
proc p4(a:string) = p3(a)
|
|
proc p5(a:string) = p4(a)
|
|
proc p6(a:string) = p5(a)
|
|
proc p7(a:string) = p6(a)
|
|
proc p8(a:string) = p7(a)
|
|
proc p9(a:string) = p8(a)
|
|
proc p10(a:string) = p9(a)
|
|
proc p11(a:string) = p10(a)
|
|
proc p12(a:string) = p11(a)
|
|
proc p13(a:string) = p12(a)
|
|
proc p14(a:string) = p13(a)
|
|
proc p15(a:string) = p14(a)
|
|
proc p16(a:string) = p15(a)
|
|
proc p17(a:string) = p16(a)
|
|
proc p18(a:string) = p17(a)
|
|
proc p19(a:string) = p18(a)
|
|
proc p20(a:string) = p19(a)
|
|
|
|
let input = $raw_input
|
|
|
|
for a in input.split():
|
|
p20(a)
|
|
p19(a)
|
|
|
|
p18(a)
|
|
p17(a)
|
|
p16(a)
|
|
p15(a)
|
|
p14(a)
|
|
p13(a)
|
|
p12(a)
|
|
p11(a)
|
|
p10(a)
|
|
p9(a)
|
|
p8(a)
|
|
p7(a)
|
|
p6(a)
|
|
p5(a)
|
|
p4(a)
|
|
p3(a)
|
|
p2(a)
|
|
|
|
echo output
|
|
discard result
|
|
|
|
macrobust """
|
|
fdsasadfsdfa sadfsdafsdaf
|
|
dsfsdafdsfadsfa fsdaasdfasdf
|
|
fsdafsadfsad asdfasdfasdf
|
|
fdsasdfasdfa sadfsadfsadf
|
|
sadfasdfsdaf sadfsdafsdaf dsfasdaf
|
|
sadfsdafsadf fdsasdafsadf fdsasadfsdaf
|
|
sdfasadfsdafdfsa sadfsadfsdaf
|
|
sdafsdaffsda sdfasadfsadf
|
|
fsdasdafsdfa sdfasdfafsda
|
|
sdfasdafsadf sdfasdafsdaf sdfasdafsdaf
|
|
"""
|
|
|
|
|
|
macrobust0 """
|
|
fdsasadfsdfa sadfsdafsdaf
|
|
dsfsdafdsfadsfa fsdaasdfasdf
|
|
fsdafsadfsad asdfasdfasdf
|
|
fdsasdfasdfa sadfsadfsadf
|
|
sadfasdfsdaf sadfsdafsdaf dsfasdaf
|
|
sadfsdafsadf fdsasdafsadf fdsasadfsdaf
|
|
sdfasadfsdafdfsa sadfsadfsdaf
|
|
sdafsdaffsda sdfasadfsadf
|
|
fsdasdafsdfa sdfasdfafsda
|
|
sdfasdafsadf sdfasdafsdaf sdfasdafsdaf
|
|
"""
|