39 lines
633 B
Go
39 lines
633 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
|
|
case '/':
|
|
if len(b) > 1 {
|
|
return b[1] == '/'
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|