blob: 4b80ba7261abb0d61b35635f6ce8cc4ebba83ae3 [file] [log] [blame]
alokp@chromium.org04d7d222012-05-16 19:24:07 +00001//
2// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
Geoff Lang0a73dd82014-11-19 16:18:08 -05007#ifndef COMPILER_PREPROCESSOR_EXPRESSIONPARSER_H_
8#define COMPILER_PREPROCESSOR_EXPRESSIONPARSER_H_
alokp@chromium.org04d7d222012-05-16 19:24:07 +00009
10#include "pp_utils.h"
11
12namespace pp
13{
14
alokp@chromium.org2c958ee2012-05-17 20:35:42 +000015class Diagnostics;
alokp@chromium.org04d7d222012-05-16 19:24:07 +000016class Lexer;
17struct Token;
18
19class ExpressionParser
20{
21 public:
Zhenyao Mod526f982014-05-13 14:51:19 -070022 ExpressionParser(Lexer *lexer, Diagnostics *diagnostics);
alokp@chromium.org04d7d222012-05-16 19:24:07 +000023
Zhenyao Mod526f982014-05-13 14:51:19 -070024 bool parse(Token *token, int *result);
alokp@chromium.org04d7d222012-05-16 19:24:07 +000025
26 private:
27 PP_DISALLOW_COPY_AND_ASSIGN(ExpressionParser);
28
Zhenyao Mod526f982014-05-13 14:51:19 -070029 Lexer *mLexer;
30 Diagnostics *mDiagnostics;
alokp@chromium.org04d7d222012-05-16 19:24:07 +000031};
32
33} // namespace pp
Geoff Lang0a73dd82014-11-19 16:18:08 -050034
35#endif // COMPILER_PREPROCESSOR_EXPRESSIONPARSER_H_