blob: 14871b824461f912d3a1095998533e9e6f018f5b [file] [log] [blame]
// Copyright (c) 2022, 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 file.
import 'package:_fe_analyzer_shared/src/parser/forwarding_listener.dart'
show ForwardingListener;
import 'package:_fe_analyzer_shared/src/parser/parser.dart' show Parser;
import 'package:_fe_analyzer_shared/src/scanner/scanner.dart'
show ScannerConfiguration, StringScanner;
import 'package:_fe_analyzer_shared/src/scanner/token.dart' show Token;
void main(List<String> args) {
String source = """
void main(List<String> args) {
print("Hello, World!");
}
""";
ScannerConfiguration scannerConfiguration = new ScannerConfiguration(
enableExtensionMethods: true,
enableNonNullable: true,
enableTripleShift: true);
StringScanner scanner = new StringScanner(
source,
includeComments: true,
configuration: scannerConfiguration,
languageVersionChanged: (scanner, languageVersion) {
// For now don't do anything, but having it (making it non-null) means the
// configuration won't be reset.
},
);
Token firstToken = scanner.tokenize();
ForwardingListener listener = new ForwardingListener();
Parser parser = new Parser(listener);
parser.parseUnit(firstToken);
print("--- End of parsing ---");
}