76 for(std::list<linet>::const_iterator it=lines.begin();
77 it!=lines.end(); it++)
79 for(std::size_t j=0; j<strip && j<it->text.size(); j++)
89 for(std::list<linet>::iterator it=lines.begin();
90 it!=lines.end(); it++)
92 if(it->text.size()>=strip)
93 it->text=std::string(it->text, strip, std::string::npos);
96 it->text=std::string(it->text, 0,
MAXWIDTH);
105 for(std::size_t i=0; i<s.size(); i++)
107 if(s[i]==
'\\' || s[i]==
'{' || s[i]==
'}')
111 (s[i]==
'_' || s[i]==
'$' || s[i]==
'~' ||
112 s[i]==
'^' || s[i]==
'%' || s[i]==
'#' ||
126 for(std::size_t i=0; i<s.size(); i++)
130 case '&': dest+=
"&";
break;
131 case '<': dest+=
"<";
break;
132 case '>': dest+=
">";
break;
142 for(std::size_t i=0; i<s.size(); i++)
164 dest+=
"ERROR: unable to open ";
172 int line_start=line_int-3,
180 for(
int l=0; l<line_start-1; l++)
183 std::getline(in, tmp);
188 std::list<linet> lines;
190 for(
int l=line_start; l<=line_end && in; l++)
192 lines.push_back(
linet());
194 std::string &line=lines.back().text;
195 std::getline(in, line);
197 if(!line.empty() && line[line.size()-1]==
'\r')
198 line.resize(line.size()-1);
200 lines.back().line_number=l;
205 for(std::list<linet>::iterator it=lines.begin();
214 for(std::list<linet>::iterator it=lines.end();
230 for(std::list<linet>::iterator it=lines.begin();
231 it!=lines.end(); it++)
240 while(line_no.size()<4)
247 if(it->line_number==line_int)
248 tmp=
"{\\ttb{}"+tmp+
"}";
253 while(line_no.size()<4)
254 line_no=
" "+line_no;
256 line_no+
" ";
260 if(it->line_number==line_int)
261 tmp=
"<em>"+tmp+
"</em>";
274 typedef std::map<source_locationt, doc_claimt> claim_sett;
275 claim_sett claim_set;
283 if(i_it->is_assert())
287 new_source_location.
set_file(i_it->source_location.get_file());
288 new_source_location.
set_line(i_it->source_location.get_line());
289 new_source_location.
set_function(i_it->source_location.get_function());
291 claim_set[new_source_location].comment_set.
292 insert(i_it->source_location.get_comment());
297 for(claim_sett::const_iterator it=claim_set.begin();
298 it!=claim_set.end(); it++)
302 std::string code =
get_code(source_location);
307 out <<
"\\claimlocation{File "
315 for(std::set<irep_idt>::const_iterator
316 s_it=it->second.comment_set.begin();
317 s_it!=it->second.comment_set.end();
324 out <<
"\\begin{alltt}\\claimcode\n"
333 out <<
"<div class=\"claim\">\n"
334 <<
"<div class=\"location\">File "
342 for(std::set<irep_idt>::const_iterator
343 s_it=it->second.comment_set.begin();
344 s_it!=it->second.comment_set.end();
346 out <<
"<div class=\"description\">\n"
352 out <<
"<div class=\"code\">\n"
354 <<
"</div> <!-- code -->\n";
356 out <<
"</div> <!-- claim -->\n";