// 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. import 'package:testing/testing.dart'; import 'package:front_end/src/fasta/testing/scanner_chain.dart'; import 'package:front_end/src/fasta/parser.dart'; 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, "../../../testing.json");