36 lines
578 B
Go
36 lines
578 B
Go
|
package ini
|
||
|
|
||
|
// isComment will return whether or not the next byte(s) is a
|
||
|
// comment.
|
||
|
func isComment(b []rune) bool {
|
||
|
if len(b) == 0 {
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
switch b[0] {
|
||
|
case ';':
|
||
|
return true
|
||
|
case '#':
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
// newCommentToken will create a comment token and
|
||
|
// return how many bytes were read.
|
||
|
func newCommentToken(b []rune) (Token, int, error) {
|
||
|
i := 0
|
||
|
for ; i < len(b); i++ {
|
||
|
if b[i] == '\n' {
|
||
|
break
|
||
|
}
|
||
|
|
||
|
if len(b)-i > 2 && b[i] == '\r' && b[i+1] == '\n' {
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return newToken(TokenComment, b[:i], NoneType), i, nil
|
||
|
}
|