in lunes.go [393:423]
func lookup(lookupTab []string, offset int, val string, stdTab []string) (newOffset, skippedSpaces int, stdValue string, value string) {
newOffset = offset
for newOffset < len(val) && unicode.IsSpace(rune(val[newOffset])) {
newOffset++
}
skippedSpaces = newOffset - offset
if newOffset > len(val) {
return offset, skippedSpaces, "", val
}
for i, v := range lookupTab {
// Already matched a more specific/longer value
if stdValue != "" && len(v) <= len(value) {
continue
}
end := newOffset + len(v)
if end > len(val) {
continue
}
candidate := val[newOffset:end]
if len(candidate) == len(v) && strings.EqualFold(candidate, v) {
stdValue = stdTab[i]
value = candidate
}
}
return newOffset, skippedSpaces, stdValue, value
}