//===--- ParseExpr.cpp - Expression Parsing -------------------------------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file implements the Expression parsing implementation. Expressions in// C99 basically consist of a bunch of binary operators with unary operators and// other random stuff at the leaves.//// In the C99 grammar, these unary operators bind tightest and are represented// as the 'cast-expression' production. Everything else is either a binary// operator (e.g. '/') or a ternary operator ("?:"). The unary leaves are// handled by ParseCastExpression, the higher level pieces are handled by// ParseBinaryExpression.////===----------------------------------------------------------------------===//#include"clang/Parse/Parser.h"#include"clang/Parse/DeclSpec.h"#include"clang/Parse/Scope.h"#include"clang/Basic/PrettyStackTrace.h"#include"ExtensionRAIIObject.h"#include"llvm/ADT/SmallVector.h"#include"llvm/ADT/SmallString.h"usingnamespaceclang;/// PrecedenceLevels - These are precedences for the binary/ternary operators in/// the C99 grammar. These have been named to relate with the C99 grammar/// productions. Low precedences numbers bind more weakly than high numbers.namespaceprec{enum