func lookup()

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
}