source: icGREP/icgrep-devel/icgrep/combine/ugrep.cpp @ 5795

Last change on this file since 5795 was 5614, checked in by faldebey, 22 months ago

Added small ugrep tool for comparison

File size: 1.0 KB
Line 
1#include <unicode/regex.h>
2#include <iostream>
3#include <fstream>
4
5using namespace std;
6
7int main(int argc, char *argv[]) {
8        string re;
9        UnicodeString str2match;
10        string fileName;
11        uint32_t caseInsensitive = 0;
12        if (argc == 3 || argc == 4){
13                re = argv[argc-2];
14                fileName = argv[argc-1];
15                if (argc == 4 && strcmp(argv[1], "-i") == 0) {
16                        caseInsensitive = 2;
17                }
18        }
19        else {
20                cerr << "Usage: ugrep [regex] [-i] [file name]\n";
21                return 0;
22        }
23       
24        UErrorCode status = U_ZERO_ERROR;
25        UnicodeString uRE;
26        uRE.setTo(re.c_str());
27        RegexMatcher *matcher = new RegexMatcher(uRE, caseInsensitive, status);
28        if (U_FAILURE(status)) {
29            cerr << "syntax error for ugrep\n";
30            return 0;
31        }
32
33        ifstream inputFile;
34        inputFile.open(fileName);
35        if (!inputFile.is_open()){
36                cerr << "input file not found\n";
37            return 0;
38        }
39        string line;
40        int count = 0;
41        while (getline(inputFile, line)){
42                UnicodeString str2match;
43                str2match.setTo(line.c_str());
44                matcher->reset(str2match);
45                if (matcher->find()) {
46                        count++;
47                }
48        }
49
50       
51       
52        cout << count << endl;
53        return 0;
54}
Note: See TracBrowser for help on using the repository browser.