clang API Documentation

Defines | Functions
ParseExpr.cpp File Reference

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"
Include dependency graph for ParseExpr.cpp:

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)

Detailed Description

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 Documentation

#define REVERTIBLE_TYPE_TRAIT (   Name)
Value:
RevertibleTypeTraits[PP.getIdentifierInfo(#Name)] \
            = RTT_JOIN(tok::kw_,Name)
#define RTT_JOIN (   X,
 
)    X##Y
#define TYPE_TRAIT (   N,
  Spelling,
 
)    case tok::kw_##Spelling:

Function Documentation

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().