コード例 #1
0
ファイル: main.go プロジェクト: danieldk/dparnn
func writeTransitions(ts system.TransitionSystem, labelNumberer *system.LabelNumberer, transitionsFilename string) {
	serializer, ok := ts.(system.TransitionSerializer)
	if !ok {
		log.Fatal("Transition system does not implement transition serialization")
	}

	f, err := os.Create(transitionsFilename)
	common.ExitIfError("Cannot create transition file:", err)
	defer f.Close()

	err = labelNumberer.WriteLabelNumberer(f, serializer)
	common.ExitIfError("Cannot create label file:", err)
}
コード例 #2
0
ファイル: io.go プロジェクト: danieldk/dparnn
func ReadTransitionsOrExit(filename string, ts system.TransitionSystem) *system.LabelNumberer {
	f, err := os.Open(filename)
	ExitIfError("Cannot open transition file:", err)
	defer f.Close()

	var numberer system.LabelNumberer

	serializer, ok := ts.(system.TransitionSerializer)
	if !ok {
		log.Fatal("Transition system does not implement transition serialization")
	}

	err = numberer.Read(f, serializer)
	ExitIfError("Cannot deserialize label numberer:", err)
	return &numberer
}
コード例 #3
0
ファイル: io.go プロジェクト: postfix/dpar
func ReadTransitions(filename string, ts system.TransitionSystem) (*system.LabelNumberer, error) {
	f, err := os.Open(filename)
	if err != nil {
		return nil, err
	}

	defer f.Close()

	var numberer system.LabelNumberer

	serializer, ok := ts.(system.TransitionSerializer)
	if !ok {
		return nil, errors.New("Transition system does not implement transition serialization")
	}

	if err := numberer.Read(f, serializer); err == nil {
		return &numberer, nil
	}

	return nil, err
}