diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-08-08 13:06:33 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-08-08 13:07:49 +0200 |
| commit | c00da3df66e3212ca3b6ab2a623e9fe5fe6d9e7f (patch) | |
| tree | 9359ffde3b9ab75a19ef3159e1bd1de7cf31ad17 /prog/encoding.go | |
| parent | 9a791c399266a650acac45ac55a066a84aad7c64 (diff) | |
prog: collect all prog comments
Parse and collect and prog comments.
Will be needed for runtest annotations
(e.g. "requires threaded mode", etc).
Diffstat (limited to 'prog/encoding.go')
| -rw-r--r-- | prog/encoding.go | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/prog/encoding.go b/prog/encoding.go index bdb00c7cc..92e2c47f0 100644 --- a/prog/encoding.go +++ b/prog/encoding.go @@ -188,10 +188,16 @@ func (target *Target) Deserialize(data []byte) (prog *Prog, err error) { comment := "" for p.Scan() { if p.EOF() { - comment = "" + if comment != "" { + prog.Comments = append(prog.Comments, comment) + comment = "" + } continue } if p.Char() == '#' { + if comment != "" { + prog.Comments = append(prog.Comments, comment) + } comment = strings.TrimSpace(p.s[p.i+1:]) continue } @@ -238,6 +244,9 @@ func (target *Target) Deserialize(data []byte) (prog *Prog, err error) { if p.Char() != '#' { return nil, fmt.Errorf("tailing data (line #%v)", p.l) } + if c.Comment != "" { + prog.Comments = append(prog.Comments, c.Comment) + } c.Comment = strings.TrimSpace(p.s[p.i+1:]) } for i := len(c.Args); i < len(meta.Args); i++ { @@ -251,6 +260,9 @@ func (target *Target) Deserialize(data []byte) (prog *Prog, err error) { } comment = "" } + if comment != "" { + prog.Comments = append(prog.Comments, comment) + } if err := p.Err(); err != nil { return nil, err } |
