import { Language } from "../Languages/Language" ; import { LineResults } from "../LineResults" ; import { RenderContext } from "../RenderContext" ; import { CommandResult } from "./CommandResult" ; import { CommandMetadata } from "./Metadata/CommandMetadata" ; /**
 * Base class for commands that may be rendered into language code.
 */ export abstract class Command { /**
     * The driving context for converting the command.
     */ protected context : RenderContext ; /**
     * A language to convert raw code into.
     */ protected language : Language ; param context public constructor ( context ) { this . context = context ; this . language = context . getLanguage ( ) ; } returns public abstract getMetadata ( ) ; param parameters returns public abstract render ( parameters ) ; }