blob: ebd4dda2f2cc7b568f0b2e47220d77e984a1fd1e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package lex
import (
"io"
"bufio"
"strings"
)
func Parse(file io.Reader) (out Screenplay) {
f := bufio.NewReader(file)
var err error
var s string
for err == nil {
var line Line
s, err = f.ReadString('\n')
split := strings.SplitN(s, ":", 2)
switch len(split){
case 0,1:
line.Type = strings.Trim(s,": \n\r")
case 2:
line.Type = split[0]
line.Contents = strings.TrimSpace(split[1])
}
if strings.TrimSpace(split[0]) != "" {
out = append(out, line)
}
}
return out
}
|