5#ifndef V8_AST_AST_SOURCE_RANGES_H_
6#define V8_AST_AST_SOURCE_RANGES_H_
45#define AST_SOURCE_RANGE_LIST(V) \
54 V(IterationStatement) \
60 V(TryCatchStatement) \
61 V(TryFinallyStatement)
428 auto it =
map_.find(node);
429 if (it ==
map_.end())
return nullptr;
434#define DEFINE_MAP_INSERT(type) \
435 void Insert(type* node, type##SourceRanges* ranges) { \
436 DCHECK_NOT_NULL(node); \
437 map_.emplace(node, ranges); \
440#undef DEFINE_MAP_INSERT
#define DEFINE_MAP_INSERT(type)
#define AST_SOURCE_RANGE_LIST(V)
virtual bool HasRange(SourceRangeKind kind)=0
virtual void RemoveContinuationRange()
virtual SourceRange GetRange(SourceRangeKind kind)=0
virtual ~AstNodeSourceRanges()=default
SourceRange GetRange(SourceRangeKind kind) override
BinaryOperationSourceRanges(const SourceRange &right_range)
bool HasRange(SourceRangeKind kind) override
BlockSourceRanges(int32_t continuation_position)
SourceRange GetRange(SourceRangeKind kind) override
bool HasRange(SourceRangeKind kind) override
CaseClauseSourceRanges(const SourceRange &body_range)
void AddElseRange(const SourceRange &else_range)
SourceRange GetRangeAtIndex(SourceRangeKind kind, size_t index)
void AddThenRanges(const SourceRange &range)
SourceRange GetRange(SourceRangeKind kind) override
ZoneVector< SourceRange > else_ranges_
ZoneVector< SourceRange > then_ranges_
size_t RangeCount() const
bool HasRange(SourceRangeKind kind) override
ConditionalChainSourceRanges(Zone *zone)
SourceRange GetRange(SourceRangeKind kind) override
ConditionalSourceRanges(const SourceRange &then_range, const SourceRange &else_range)
bool HasRange(SourceRangeKind kind) override
int32_t continuation_position_
ContinuationSourceRanges(int32_t continuation_position)
void RemoveContinuationRange() override
bool HasRange(SourceRangeKind kind) override
SourceRange GetRange(SourceRangeKind kind) override
SourceRange GetRange(SourceRangeKind kind) override
ExpressionSourceRanges(const SourceRange &right_range)
bool HasRange(SourceRangeKind kind) override
bool HasRange(SourceRangeKind kind) override
SourceRange GetRange(SourceRangeKind kind) override
IfStatementSourceRanges(const SourceRange &then_range, const SourceRange &else_range)
SourceRange GetRange(SourceRangeKind kind) override
bool HasRange(SourceRangeKind kind) override
void RemoveContinuationRange() override
void RemoveContinuationRange() override
bool HasRange(SourceRangeKind kind) override
SourceRange GetRange(SourceRangeKind kind) override
IterationStatementSourceRanges(const SourceRange &body_range)
JumpStatementSourceRanges(int32_t continuation_position)
ZoneVector< SourceRange > ranges_
NaryOperationSourceRanges(Zone *zone, const SourceRange &range)
SourceRange GetRange(SourceRangeKind kind) override
SourceRange GetRangeAtIndex(size_t index)
bool HasRange(SourceRangeKind kind) override
void AddRange(const SourceRange &range)
size_t RangeCount() const
ZoneMap< ZoneObject *, AstNodeSourceRanges * > map_
SourceRangeMap(Zone *zone)
AstNodeSourceRanges * Find(ZoneObject *node)
SuspendSourceRanges(int32_t continuation_position)
SwitchStatementSourceRanges(int32_t continuation_position)
ThrowSourceRanges(int32_t continuation_position)
bool HasRange(SourceRangeKind kind) override
TryCatchStatementSourceRanges(const SourceRange &catch_range)
SourceRange GetRange(SourceRangeKind kind) override
void RemoveContinuationRange() override
SourceRange GetRange(SourceRangeKind kind) override
void RemoveContinuationRange() override
TryFinallyStatementSourceRanges(const SourceRange &finally_range)
bool HasRange(SourceRangeKind kind) override
SourceRange finally_range_
constexpr int kNoSourcePosition
#define DCHECK(condition)
#define DCHECK_LT(v1, v2)
#define DCHECK_EQ(v1, v2)
static SourceRange FunctionLiteralMarkerRange()
static SourceRange ContinuationOf(const SourceRange &that, int end=kNoSourcePosition)
static SourceRange OpenEnded(int32_t start)
static SourceRange Empty()
static constexpr int kFunctionLiteralSourcePosition
SourceRange(int start, int end)