// Copyright (c) 2016, 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.md file. // @dart = 2.9 import 'package:_fe_analyzer_shared/src/parser/parser.dart' show ParserError, parse; import 'package:testing/testing.dart' show Chain, ChainContext, Result, Step, runMe; import '../../utils/scanner_chain.dart' show Read, Scan, ScannedFile; Future createContext( Chain suite, Map environment) async { return new ScannerContext(); } class ScannerContext extends ChainContext { final List steps = const [ const Read(), const Scan(), const Parse(), ]; } class Parse extends Step { const Parse(); String get name => "parse"; Future> run(ScannedFile file, ChainContext context) async { try { List errors = parse(file.result.tokens); if (errors.isNotEmpty) { return fail(null, errors.join("\n")); } } on ParserError catch (e, s) { return fail(null, e, s); } return pass(null); } } main(List arguments) => runMe(arguments, createContext, configurationPath: "../../../testing.json");