2025-10-15 10:12:44 +03:00

50 lines
1.4 KiB
Go

package tsoptions
import (
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/ast"
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/collections"
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/vfs"
)
func getTestParseCommandLineWorkerDiagnostics(decls []*CommandLineOption) *ParseCommandLineWorkerDiagnostics {
if len(decls) == 0 {
return CompilerOptionsDidYouMeanDiagnostics
}
return getParseCommandLineWorkerDiagnostics(decls)
}
func ParseCommandLineTestWorker(
decls []*CommandLineOption,
commandLine []string,
fs vfs.FS,
) *TestCommandLineParser {
parser := &commandLineParser{
fs: fs,
workerDiagnostics: CompilerOptionsDidYouMeanDiagnostics,
fileNames: []string{},
options: &collections.OrderedMap[string, any]{},
errors: []*ast.Diagnostic{},
}
if len(decls) != 0 {
parser.workerDiagnostics = getTestParseCommandLineWorkerDiagnostics(decls)
}
parser.optionsMap = GetNameMapFromList(parser.OptionsDeclarations())
parser.parseStrings(commandLine)
return &TestCommandLineParser{
Fs: fs,
WorkerDiagnostics: parser.workerDiagnostics,
FileNames: parser.fileNames,
Options: parser.options,
Errors: parser.errors,
}
}
type TestCommandLineParser struct {
Fs vfs.FS
WorkerDiagnostics *ParseCommandLineWorkerDiagnostics
FileNames []string
Options *collections.OrderedMap[string, any]
Errors []*ast.Diagnostic
}