21 lines
571 B
Dart
21 lines
571 B
Dart
import 'package:source_span/source_span.dart';
|
|
import '../token.dart';
|
|
import 'input_value.dart';
|
|
|
|
class ListValueContext extends InputValueContext {
|
|
final Token LBRACKET, RBRACKET;
|
|
final List<InputValueContext> values = [];
|
|
|
|
ListValueContext(this.LBRACKET, this.RBRACKET);
|
|
|
|
@override
|
|
FileSpan get span {
|
|
var out = values.fold<FileSpan>(LBRACKET.span, (o, v) => o.expand(v.span));
|
|
return out.expand(RBRACKET.span);
|
|
}
|
|
|
|
@override
|
|
computeValue(Map<String, dynamic> variables) {
|
|
return values.map((v) => v.computeValue(variables)).toList();
|
|
}
|
|
}
|