platform/graphql_parser/lib/src/language/ast/fragment_spread.dart
2018-08-02 09:25:41 -04:00

20 lines
522 B
Dart

import '../token.dart';
import 'directive.dart';
import 'node.dart';
import 'package:source_span/source_span.dart';
class FragmentSpreadContext extends Node {
final Token ELLIPSIS, NAME;
final List<DirectiveContext> directives = [];
FragmentSpreadContext(this.ELLIPSIS, this.NAME);
String get name => NAME.text;
@override
FileSpan get span {
var out = ELLIPSIS.span.expand(NAME.span);
if (directives.isEmpty) return out;
return directives.fold<FileSpan>(out, (o, d) => o.expand(d.span));
}
}