Files
complie-erlang/main.go
T
2025-09-24 00:54:08 +08:00

75 lines
1.9 KiB
Go

// main.go
package main
import (
"complie-erlang/config"
"complie-erlang/parser"
tm "complie-erlang/template"
"fmt"
"log"
"os"
"strings"
"text/template"
)
func main() {
cfg := config.DefaultErlConfig()
templates := tm.NewTemplate()
if err := templates.Load(cfg.TemplateDir); err != nil {
log.Fatalf("loading templates: %v", err)
return
}
erlangFile, _ := parser.ParseErlangFile("E:\\gopackage2\\2025.7\\complie-erl\\examples\\peak_arena_port.erl")
// fmt.Printf("ParseErlangFile: %v, %v\n", erlangFile, err)
for _, function := range erlangFile.Functions {
if len(function.KeyMap) > 0 {
fmt.Printf("Function: %v %v \n", function.Name, function.KeyMap)
}
}
}
func main1() {
erlangFile, _ := parser.ParseErlangFile("E:\\gopackage2\\2025.7\\complie-erl\\examples\\peak_arena_port.erl")
// fmt.Printf("ParseErlangFile: %v, %v\n", erlangFile, err)
for _, function := range erlangFile.Functions {
if len(function.KeyMap) > 0 {
fmt.Printf("Function: %v %v \n", function.Name, function.KeyMap)
}
}
bytes, _ := os.ReadFile("E:\\gopackage2\\2025.7\\complie-erl\\examples\\templates\\port.tpl")
// 解析模板
t := template.Must(template.New("test").Funcs(template.FuncMap{
"hd": hd,
"title": strings.Title,
"join": strings.Join,
"list": func(strs []string) string { return strings.Join(strs, ",") },
}).Parse(string(bytes)))
// 执行模板,填充数据
var args = map[string]interface{}{
"cmd": []string{"\\game\\role_port\\get_info"},
"desc": []string{"获取数据1", "获取数据2"},
"module": []string{"peak_arena_port"},
"func": []string{"get_info"},
//"args": []string{"game", "1", "2"},
"reconnect": []string{"1"},
"fun_id": []string{"98"},
"pre_proto": []string{"pub_proto"},
"pre_message": []string{"single_int"},
}
err := t.Execute(os.Stdout, args)
fmt.Println(err)
}
func hd(str []string) string {
return str[0]
}