Implement parsing functions partially

This commit is contained in:
2024-11-06 00:19:00 +01:00
parent 40e3bf0aea
commit bfe4767ead
5 changed files with 103 additions and 9 deletions

View File

@@ -2,6 +2,7 @@ package main
import (
_ "embed"
"fmt"
"log"
"os"
"text/template"
@@ -17,6 +18,7 @@ var fns = template.FuncMap{
var templatestr string
var functionTemplate *template.Template
func init() {
var err error
functionTemplate, err = template.New("class").Funcs(fns).Parse(templatestr)
@@ -30,10 +32,10 @@ func init() {
type (
Function struct {
Name string
Arguments []Argument
Returns []Argument
Arguments []Parameter
Returns []Parameter
}
Argument struct {
Parameter struct {
Name string
Type string
Description string
@@ -44,15 +46,19 @@ func (f *Function) ResolveFileName() string {
return f.Name + ".lua"
}
func (f *Function) WriteFile() error {
if f.Name == "" {
return fmt.Errorf("function name is empty of %+v", f)
}
file, err := os.Create(f.ResolveFileName())
if err != nil {
return err
}
defer file.Close()
err = functionTemplate.Execute(file, f)
if err != nil {
return err
}
return nil
}
}