45 lines
980 B
Text
45 lines
980 B
Text
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() {
|
|
}")
|