clang  3.7.0
Public Types | Public Attributes | List of all members
DefinedTracker Struct Reference
Collaboration diagram for DefinedTracker:
[legend]

Public Types

enum  TrackerState { DefinedMacro, NotDefinedMacro, Unknown }
 

Public Attributes

enum DefinedTracker::TrackerState State
 
IdentifierInfoTheMacro
 

Detailed Description

DefinedTracker - This struct is used while parsing expressions to keep track of whether !defined(X) has been seen.

With this simple scheme, we handle the basic forms: !defined(X) and !defined X but we also trivially handle (silly) stuff like: !!!defined(X) and +!defined(X) and !+!+!defined(X) and !(defined(X)).

Definition at line 68 of file PPExpressions.cpp.

Member Enumeration Documentation

Each time a Value is evaluated, it returns information about whether the parsed value is of the form defined(X), !defined(X) or is something else.

Enumerator
DefinedMacro 
NotDefinedMacro 
Unknown 

Definition at line 71 of file PPExpressions.cpp.

Member Data Documentation

enum DefinedTracker::TrackerState DefinedTracker::State

Referenced by EvaluateDefined(), and EvaluateValue().

IdentifierInfo* DefinedTracker::TheMacro

TheMacro - When the state is DefinedMacro or NotDefinedMacro, this indicates the macro that was checked.

Definition at line 78 of file PPExpressions.cpp.

Referenced by EvaluateDefined().


The documentation for this struct was generated from the following file: