Use new binarySearch everywhere (#7876)

This commit is contained in:
Dmitry Atamanov 2018-05-25 00:04:30 +03:00 • committed by GitHub
commit e206a8d952
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 68 deletions

View file

@ -13,6 +13,7 @@
import
strutils
from algorithm import binarySearch
type
TokenClass* = enum
@ -365,32 +366,10 @@ proc generalStrLit(g: var GeneralTokenizer, position: int): int =
result = pos
proc isKeyword(x: openArray[string], y: string): int =
var a = 0
var b = len(x) - 1
while a <= b:
var mid = (a + b) div 2
var c = cmp(x[mid], y)
if c < 0:
a = mid + 1
elif c > 0:
b = mid - 1
else:
return mid
result = - 1
binarySearch(x, y)
proc isKeywordIgnoreCase(x: openArray[string], y: string): int =
var a = 0
var b = len(x) - 1
while a <= b:
var mid = (a + b) div 2
var c = cmpIgnoreCase(x[mid], y)
if c < 0:
a = mid + 1
elif c > 0:
b = mid - 1
else:
return mid
result = - 1
binarySearch(x, y, cmpIgnoreCase)
type
TokenizerFlag = enum