stencet  v0.1.16
Build C++ web server modules that allow easy routing and deployment.
parser.h
1 /* Copyright (C) 2012-2013 Justin Berger
2  The full license is available in the LICENSE file at the root of this project and is also available at http://opensource.org/licenses/MIT. */
3 
4 #pragma once
5 #include <vector>
6 #include <iostream>
7 #include "region.h"
8 namespace stencet {
9  namespace ParseStatus {
10  enum t {
11  END,
12  POP,
13  UNKNOWN
14  };
15  }
16 
17  enum Token {
18  Val,
19  OpenVar, // {{
20  CloseVar, // }}
21  OpenTag, // {%
22  CloseTag, // %}
23  eof = EOF
24  };
25 
26  Token nextToken(std::istream& stream, char& buffer);
27 
28  ParseStatus::t Parse(std::istream& stream,
29  std::vector<Region*>& regions,
30  std::string& unknown);
31 }