clang API Documentation
Provides the Expression parsing implementation. More...
#include "clang/Parse/Parser.h"
#include "RAIIObjectsForParser.h"
#include "clang/AST/ASTContext.h"
#include "clang/Basic/PrettyStackTrace.h"
#include "clang/Sema/DeclSpec.h"
#include "clang/Sema/ParsedTemplate.h"
#include "clang/Sema/Scope.h"
#include "clang/Sema/TypoCorrection.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "clang/Basic/TokenKinds.def"
Go to the source code of this file.
Defines | |
#define | RTT_JOIN(X, Y) X##Y |
#define | REVERTIBLE_TYPE_TRAIT(Name) |
#define | TYPE_TRAIT(N, Spelling, K) case tok::kw_##Spelling: |
Functions | |
static bool | isFoldOperator (prec::Level Level) |
static bool | isFoldOperator (tok::TokenKind Kind) |
Provides 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.
Definition in file ParseExpr.cpp.
#define REVERTIBLE_TYPE_TRAIT | ( | Name | ) |
RevertibleTypeTraits[PP.getIdentifierInfo(#Name)] \ = RTT_JOIN(tok::kw_,Name)
#define TYPE_TRAIT | ( | N, | |
Spelling, | |||
K | |||
) | case tok::kw_##Spelling: |
static bool isFoldOperator | ( | prec::Level | Level | ) | [static] |
Definition at line 219 of file ParseExpr.cpp.
References clang::prec::Conditional, and clang::prec::Unknown.
Referenced by isFoldOperator().
static bool isFoldOperator | ( | tok::TokenKind | Kind | ) | [static] |
Definition at line 222 of file ParseExpr.cpp.
References clang::getBinOpPrecedence(), and isFoldOperator().