1
0
treerack/open_test.go

46 lines
681 B
Go
Raw Permalink Normal View History

2017-10-27 17:25:20 +02:00
package treerack
import (
"bytes"
"io"
"os"
)
func openSyntaxReader(r io.Reader) (*Syntax, error) {
b, err := bootSyntax()
if err != nil {
return nil, err
}
doc, err := b.Parse(r)
if err != nil {
return nil, err
}
2017-10-31 21:53:09 +01:00
s := &Syntax{}
2017-10-27 17:25:20 +02:00
if err := define(s, doc); err != nil {
return nil, err
}
if err := s.Init(); err != nil {
return nil, err
}
return s, nil
}
func openSyntaxFile(file string) (*Syntax, error) {
2026-06-07 17:56:24 +02:00
b, err := os.ReadFile(file)
2017-10-27 17:25:20 +02:00
if err != nil {
return nil, err
}
2026-06-07 17:56:24 +02:00
r := bytes.NewBuffer(b)
return openSyntaxReader(r)
2017-10-27 17:25:20 +02:00
}
func openSyntaxString(syntax string) (*Syntax, error) {
b := bytes.NewBufferString(syntax)
return openSyntaxReader(b)
}