21 # include <vcl_msvc_warnings.h> 47 bool discard_current_line =
true;
48 while (discard_current_line)
50 bool extract_fields =
true;
51 discard_current_line =
false;
58 if (c == EOF ||
fd_.eof()) {
67 char const* linep =
line_.c_str();
75 if (do_strip_comments) {
78 while (*comment_char !=
'#' && *comment_char !=
'\0') ++comment_char;
82 if (*comment_char ==
'#') {
84 *comment_char =
' '; ++comment_char;
86 if (*comment_char !=
'\0') { *comment_char =
'\0'; }
90 extract_fields =
false;
91 discard_current_line =
true;
103 while (*cp && std::isspace(*cp))
111 while (*cp && !std::isspace(*cp))
126 char const *p =
line_.c_str();
127 if (field_number >=
NF())
128 field_number =
NF() - 1;
129 if (field_number < 0) {
130 std::cerr <<
"vul_awk::line_from("<< field_number <<
") -- ZOIKS\n";
139 std::cout <<
"Start\n";
140 for (
vul_awk awk(std::cin); awk; ++awk) {
141 std::cout << awk.NF() <<
':' << awk[2] << std::endl;
char const * line() const
Return the entire line.
std::vector< char * > fields_
vul_awk(std::istream &s, ModeFlags mode=none)
Construct from input stream.
int NF() const
Return the number of fields on this line.
char const * line_from(int field_number) const
Return the remainder of the line, starting from field_number.