4223
|
1 #!../ploki
|
|
2 REM Usage: uncomment.pk [FILE [...]]
|
|
3 REM Opens each FILE in turn, removes C (and C++) comments, and prints
|
|
4 REM the results to stdout. Reads from stdin if FILE is omitted.
|
|
5
|
|
6 INSERT perl-util.pk HERE
|
|
7 LET status 0
|
|
8 IF \ARG < 2
|
|
9 @delcom \EING
|
|
10 ELSE
|
|
11 LET i 1
|
|
12 FOR main-loop LET fh @APERS #<\ARG:i "R"#>
|
|
13 IF @NOT fh
|
|
14 WUNT \FEHL "\V\ARG:0: \V\ARG:i: \V\!
|
|
15 LET status @NEG 1
|
|
16 ELSE
|
|
17 @delcom fh
|
|
18 CLAUDS fh
|
|
19 FI
|
|
20 LET i += 1
|
|
21 IF i < \ARG
|
|
22 NEXT main-loop
|
|
23 FI
|
|
24 FI
|
|
25
|
|
26 END status
|
|
27
|
|
28 FOR delcom LEET fh \@
|
|
29 LEET s fh . @NEG 1
|
|
30 KTHX @s///g #<s "/((\\|?!?!/)\n!)*(/((\\|?!?!/)\n|'^\n')*|*!'^*'**!+((\\|?!?!/)\n!)*('^/*''^*'**!+((\\|?!?!/)\n!)*)*{/})|{(\"((\\|?!?!/).|'^\"')*\"|'!((\\|?!?!/).|'^'!')*'!|.)'^'!\"/'*}" @OMFG (" " ] @DEF-P \1 _ \0)#>
|