Add & register more basic commands

This commit is contained in:
2025-11-11 21:37:32 -06:00
parent c437958406
commit bfc9459b69
27 changed files with 514 additions and 3 deletions

24
src/vm/commands/indent.ts Normal file
View File

@@ -0,0 +1,24 @@
import {Command, ParseContext, StrTerm} from "./command.js";
import {LexInput} from "../lexer.js";
export type IndentData = {
type: 'space'|'tab',
level?: StrTerm,
}
export class Indent extends Command<IndentData> {
attemptParse(context: ParseContext): IndentData {
return {
type: context.popKeywordInSet(['space', 'tab']).value,
level: context.popOptionalTerm(),
}
}
isParseCandidate(token: LexInput): boolean {
return this.isKeyword(token, 'indent')
}
getDisplayName(): string {
return 'indent'
}
}