github.com/nevalang/neva@v0.23.1-0.20240507185603-7696a9bb8dda/internal/compiler/backend/json/backend.go (about) 1 package json 2 3 import ( 4 "encoding/json" 5 "os" 6 "path/filepath" 7 8 "github.com/nevalang/neva/internal/runtime/ir" 9 ) 10 11 type Backend struct{} 12 13 func NewBackend() Backend { 14 return Backend{} 15 } 16 17 func (b Backend) Emit(dst string, prog *ir.Program) error { 18 outFile := filepath.Join(dst, "program.json") 19 f, err := os.OpenFile(outFile, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0755) 20 if err != nil { 21 return err 22 } 23 defer f.Close() 24 e := json.NewEncoder(f) 25 return e.Encode(prog) 26 }