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  }