From 06935ef0853f6165e3a4a1aac3c7fdcfac986258 Mon Sep 17 00:00:00 2001 From: Matt Godbolt Date: Fri, 2 Dec 2022 10:58:23 -0600 Subject: [PATCH] Ts-ify carbon (#4384) --- lib/compilers/{carbon.js => carbon.ts} | 31 +++++++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) rename lib/compilers/{carbon.js => carbon.ts} (74%) diff --git a/lib/compilers/carbon.js b/lib/compilers/carbon.ts similarity index 74% rename from lib/compilers/carbon.js rename to lib/compilers/carbon.ts index 615612cfc85..2dfa1dfe3da 100644 --- a/lib/compilers/carbon.js +++ b/lib/compilers/carbon.ts @@ -25,28 +25,47 @@ import {BaseCompiler} from '../base-compiler'; import {BaseParser} from './argument-parsers'; +import {CompilerInfo} from '../../types/compiler.interfaces'; +import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces'; +import {ParsedAsmResult} from '../../types/asmresult/asmresult.interfaces'; export class CarbonCompiler extends BaseCompiler { static get key() { return 'carbon'; } - constructor(compilerInfo, env) { + constructor(compilerInfo: CompilerInfo & Record, env) { super(compilerInfo, env); this.compiler.demangler = ''; this.demanglerClass = null; } - optionsForFilter(filters, outputFilename) { + override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename: string): string[] { return ['--color', `--trace_file=${outputFilename}`]; } - processAsm(result, filters, options) { + override processAsm(result, filters, options): ParsedAsmResult { // Really should write a custom parser, but for now just don't filter anything. - return super.processAsm(result, {}, options); + return super.processAsm( + result, + { + labels: false, + binary: false, + commentOnly: false, + demangle: false, + optOutput: false, + directives: false, + dontMaskFilenames: false, + execute: false, + intel: false, + libraryCode: false, + trim: false, + }, + options, + ); } - async afterCompilation( + override async afterCompilation( result, doExecute, key, @@ -87,7 +106,7 @@ export class CarbonCompiler extends BaseCompiler { return result; } - getArgumentParser() { + override getArgumentParser() { // TODO: may need a custom one, based on/borrowing from ClangParser return BaseParser; }