75 lines
1.9 KiB
Go
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]
|
|
}
|