import '../token.dart'; import 'package:source_span/src/span.dart'; import 'value.dart'; class ArrayValueContext extends ValueContext { final Token LBRACKET, RBRACKET; final List<ValueContext> values = []; ArrayValueContext(this.LBRACKET, this.RBRACKET); @override SourceSpan get span => new SourceSpan(LBRACKET.span?.end, RBRACKET.span?.end, toSource()); @override List get value => values.map((v) => v.value).toList(); @override String toSource() { var buf = new StringBuffer('['); for (int i = 0; i < values.length; i++) { if (i > 0) buf.write(','); buf.write(values[i].toSource()); } return buf.toString() + ']'; } }