Use new binarySearch everywhere (#7876)
This commit is contained in:
parent
85b7d8fcc4
commit
e206a8d952
4 changed files with 10 additions and 68 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue