package main import ( "flag" _ "embed" logger "git.site.quack-lab.dev/dave/cylogger" utils "git.site.quack-lab.dev/dave/cyutils" ) func main() { outdir := flag.String("o", ".", "Output directory") flag.Parse() logger.InitFlag() logger.Info("Starting...") files := flag.Args() if len(files) == 0 { logger.Error("No files specified") flag.Usage() return } // TODO: Implement parsing enums somehow // TODO: Implement some sort of switching (between a class and an enum) utils.WithWorkers(10, files, func(worker int, file string) { class, err := ParseClass(file) if err != nil { logger.Error("Error parsing file: %v", err) return } class.Write(*outdir, classTemplate) }) } func MapType(t string) string { switch t { case "var": return "any" case "int": return "number" case "float": return "number" case "double": return "number" case "bool": return "boolean" case "table_t": return "table" default: return t } } func IsReservedKeyword(t string) bool { switch t { case "any", "boolean", "number", "string", "table", "function", "thread", "userdata", "nil", "var", "in": return true } return false }