aboutsummaryrefslogtreecommitdiff
path: root/tests/compiler/sloc-counter/driver.cxx
blob: 8ba533806519dddd4bb7424c4d053171f99d5ae2 (plain)
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
// file      : tests/compiler/sloc-counter/driver.cxx
// author    : Boris Kolpackov <boris@codesynthesis.com>
// copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC
// license   : MIT; see accompanying LICENSE file

#include <fstream>
#include <iostream>

#include <cutl/compiler/code-stream.hxx>
#include <cutl/compiler/sloc-counter.hxx>

using namespace std;
using namespace cutl::compiler;

int
main (int argc, char* argv[])
{
  if (argc != 2)
  {
    cerr << "usage: " << argv[0] << " <file>" << endl;
    return 1;
  }

  ostream_filter<sloc_counter, char> filt (cout);

  ifstream ifs(argv[1]);

  for (istream::int_type c (ifs.get ());
       c != istream::traits_type::eof ();
       c = ifs.get ())
  {
    cout.put (istream::traits_type::to_char_type (c));
  }

  cout << endl
       << filt.stream ().count () << endl;
}