初版提交
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
// 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]
|
||||
}
|
||||
Reference in New Issue
Block a user