blob: b21014bc7350f3de2de8156d3c85665347c7a300 [file] [log] [blame]
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
library sourcemap.trace_graph;
import 'dart:collection';
import 'package:compiler/src/io/source_information.dart';
import 'package:compiler/src/io/position_information.dart';
import 'sourcemap_html_helper.dart';
class TraceGraph {
List<TraceStep> steps = <TraceStep>[];
TraceStep entry;
Queue stack = new Queue();
void addStep(TraceStep step) {
steps.add(step);
step.stack = stack.toList();
}
void pushBranch(branch) {
stack.addLast(branch);
}
void popBranch() {
stack.removeLast();
}
}
class TraceStep {
final int id;
final node;
final Offset offset;
final List text;
final SourceLocation sourceLocation;
TraceStep next;
Map<dynamic, TraceStep> branchMap;
List stack;
TraceStep(
this.id,
this.node,
this.offset,
this.text,
[this.sourceLocation]);
String toString() => '<span style="background:${toColorCss(id)}">$id</span>';
}