string 0; proc Strip(Prog); \Show Prog with comments stripped out char Prog; int Ch, Showing; func GetCh; [Ch:= Prog(0); if Ch = 0 then exit; Prog:= Prog+1; ]; [Showing:= true; loop [GetCh; if Showing then [if Ch = ^/ then [GetCh; if Ch = ^* then Showing:= false else [ChOut(0, ^/); ChOut(0, Ch)] ] else ChOut(0, Ch); ] else [if Ch = ^* then [GetCh; if Ch =^/ then Showing:= true; ]; ]; ]; ]; Strip(" /** * Some comments * longer comments here that we can parse. * * Rahoo */ function subroutine() { a = /* inline comment */ b + c ; } /*/ <-- tricky comments */ /** * Another comment. */ function something() { }")