robertkrimen / string-comments-extract

This URL has Read+Write access

string-comments-extract / t / 01-basic.t
100644 137 lines (85 sloc) 1.907 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/usr/bin/perl -w
 
use strict;
use warnings;
 
use Test::Most;
 
plan qw/no_plan/;
 
use String::Comments::Extract::SlashStar;
 
my (@output, $output, $input);
$input = <<_END_;
/* Here is a comment */
 
// Here is another comment
 
/* and another! */
 
#define I_AM_SPECIAL_LA_LA_LA
 
// Here is a comment /* containing a comment */
 
"// This is not a comment "
 
if (1) {
0;
}
else {
malloc();
}
/* A multiline
comment
 
// With another comment inside
 
"And a stringlike thing"
At the front
*/
 
/* A multiline comment
with some stuff at the end */ int printf()
 
int main() {
int *pointer;
int cannot_actually_do_this_in_c(ha ha)
char *string = "With \\"some escapes" //But get this one!
}
 
if (1) { // Comment after an "if"
0;
}
else {
malloc();
}
 
// A wacky "comment
// And another" one
_END_
 
is($output = String::Comments::Extract::SlashStar->extract_comments($input), <<_END_);
/* Here is a comment */
 
// Here is another comment
 
/* and another! */
 
 
 
// Here is a comment /* containing a comment */
 
 
 
  
    
 
 
    
 
/* A multiline
    comment
 
    // With another comment inside
 
    "And a stringlike thing"
At the front
*/
 
/* A multiline comment
 with some stuff at the end */
 
  
     
      
        //But get this one!
 
 
   // Comment after an "if"
    
 
 
    
 
 
// A wacky "comment
// And another" one
_END_
 
#use XXX;
#print "$output\n";
 
@output = String::Comments::Extract::SlashStar->collect_comments($input);
$output[5] .= "\n";
cmp_deeply(\@output, [
' Here is a comment ',
' Here is another comment',
' and another! ',
' Here is a comment /* containing a comment */',
<<_END_,
 A multiline
    comment
 
    // With another comment inside
 
    "And a stringlike thing"
At the front
_END_
<<_END_,
 A multiline comment
 with some stuff at the end
_END_
'But get this one!',
' Comment after an "if"',
' A wacky "comment',
' And another" one',
]);