Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Unified Diff: pkg/front_end/lib/src/fasta/outline.dart

Issue 2704753002: Implement line and column numbers. (Closed)
Patch Set: Change message. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/front_end/lib/src/fasta/messages.dart ('k') | pkg/front_end/lib/src/fasta/run.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/front_end/lib/src/fasta/outline.dart
diff --git a/pkg/front_end/lib/src/fasta/outline.dart b/pkg/front_end/lib/src/fasta/outline.dart
index 05cc88ff9874d636c15a0f93639b84148eaa821d..c2a911a79ea55a49e9bb39bae21f7198f87fd46c 100644
--- a/pkg/front_end/lib/src/fasta/outline.dart
+++ b/pkg/front_end/lib/src/fasta/outline.dart
@@ -16,6 +16,9 @@ import 'package:kernel/verifier.dart' show
import 'compiler_command_line.dart' show
CompilerCommandLine;
+import 'compiler_context.dart' show
+ CompilerContext;
+
import 'errors.dart' show
InputError,
inputError;
@@ -40,15 +43,16 @@ import 'ast_kind.dart' show
import 'testing/kernel_chain.dart' show
computePatchedSdk;
-CompilerCommandLine parseArguments(String programName, List<String> arguments) {
- return new CompilerCommandLine(programName, arguments);
-}
-
Future<KernelTarget> outline(List<String> arguments) async {
try {
- CompilerCommandLine cl = parseArguments("outline", arguments);
- if (cl.verbose) print("Building outlines for ${arguments.join(' ')}");
- return await doOutline(cl, new Ticker(isVerbose: cl.verbose), cl.output);
+ return await CompilerCommandLine.withGlobalOptions(
+ "outline", arguments, (CompilerContext c) async {
+ if (c.options.verbose) {
+ print("Building outlines for ${arguments.join(' ')}");
+ }
+ return await doOutline(c, new Ticker(isVerbose: c.options.verbose),
+ c.options.output);
+ });
} on InputError catch (e) {
exitCode = 1;
print(e.format());
@@ -58,12 +62,14 @@ Future<KernelTarget> outline(List<String> arguments) async {
Future<Uri> compile(List<String> arguments) async {
try {
- CompilerCommandLine cl = parseArguments("compile", arguments);
- if (cl.verbose) {
- print("Compiling directly to Kernel: ${arguments.join(' ')}");
- }
- return
- await doCompile(cl, new Ticker(isVerbose: cl.verbose), AstKind.Kernel);
+ return await CompilerCommandLine.withGlobalOptions(
+ "compile", arguments, (CompilerContext c) async {
+ if (c.options.verbose) {
+ print("Compiling directly to Kernel: ${arguments.join(' ')}");
+ }
+ return await doCompile(c, new Ticker(isVerbose: c.options.verbose),
+ AstKind.Kernel);
+ });
} on InputError catch (e) {
exitCode = 1;
print(e.format());
@@ -73,10 +79,14 @@ Future<Uri> compile(List<String> arguments) async {
Future<Uri> kompile(List<String> arguments) async {
try {
- CompilerCommandLine cl = parseArguments("kompile", arguments);
- if (cl.verbose) print("Compiling via analyzer: ${arguments.join(' ')}");
- return await doCompile(
- cl, new Ticker(isVerbose: cl.verbose), AstKind.Analyzer);
+ return await CompilerCommandLine.withGlobalOptions(
+ "kompile", arguments, (CompilerContext c) async {
+ if (c.options.verbose) {
+ print("Compiling via analyzer: ${arguments.join(' ')}");
+ }
+ return await doCompile(c, new Ticker(isVerbose: c.options.verbose),
+ AstKind.Analyzer);
+ });
} on InputError catch (e) {
exitCode = 1;
print(e.format());
@@ -84,19 +94,20 @@ Future<Uri> kompile(List<String> arguments) async {
}
}
-Future<KernelTarget> doOutline(CompilerCommandLine cl, Ticker ticker,
+Future<KernelTarget> doOutline(CompilerContext c, Ticker ticker,
[Uri output]) async {
Uri sdk = await computePatchedSdk();
ticker.logMs("Found patched SDK");
TranslateUri uriTranslator = await TranslateUri.parse(sdk);
ticker.logMs("Read packages file");
DillTarget dillTarget = new DillTarget(ticker, uriTranslator);
- KernelTarget kernelTarget = new KernelTarget(dillTarget, uriTranslator);
- Uri platform = cl.platform;
+ KernelTarget kernelTarget =
+ new KernelTarget(dillTarget, uriTranslator, c.uriToSource);
+ Uri platform = c.options.platform;
if (platform != null) {
dillTarget.read(platform);
}
- String argument = cl.arguments.first;
+ String argument = c.options.arguments.first;
Uri uri = Uri.base.resolve(argument);
String path = uriTranslator.translate(uri)?.path ?? argument;
if (path.endsWith(".dart")) {
@@ -106,29 +117,28 @@ Future<KernelTarget> doOutline(CompilerCommandLine cl, Ticker ticker,
}
await dillTarget.writeOutline(null);
await kernelTarget.writeOutline(output);
- if (cl.dumpIr && output != null) {
+ if (c.options.dumpIr && output != null) {
kernelTarget.dumpIr();
}
return kernelTarget;
}
-Future<Uri> doCompile(CompilerCommandLine cl, Ticker ticker,
- AstKind kind) async {
- KernelTarget kernelTarget = await doOutline(cl, ticker);
+Future<Uri> doCompile(CompilerContext c, Ticker ticker, AstKind kind) async {
+ KernelTarget kernelTarget = await doOutline(c, ticker);
if (exitCode != 0) return null;
- Uri uri = cl.output;
+ Uri uri = c.options.output;
await kernelTarget.writeProgram(uri, kind);
- if (cl.dumpIr) {
+ if (c.options.dumpIr) {
kernelTarget.dumpIr();
}
- if (cl.verify) {
+ if (c.options.verify) {
try {
verifyProgram(kernelTarget.program);
ticker.logMs("Verified program");
} catch (e, s) {
exitCode = 1;
print("Verification of program failed: $e");
- if (s != null && cl.verbose) {
+ if (s != null && c.options.verbose) {
print(s);
}
}
« no previous file with comments | « pkg/front_end/lib/src/fasta/messages.dart ('k') | pkg/front_end/lib/src/fasta/run.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698