fix: deadlock detector, graph/query/lexer бъгове

Поправени проблеми:
- Deadlock detector: cycle reconstruction вече проверява пълен цикъл
- Graph cypher: executeCypher acquire-ва lock при четене
- Graph engine: loadFromFile acquire-ва lock при зареждане
- Graph engine: lock поле е exported за външен достъп
- Query: parseRowData поддържа escape-ване на , и = в стойности
- Query: execUpdateRow escape-ва стойности при сериализация
- Lexer: readNumber спира при втора точка (1.2.3 вече не е валиден float)
- Lexer: skipBlockComment хвърля ValueError при незатворен коментар

292 теста, 0 failure-а.
This commit is contained in:
2026-05-12 23:21:29 +03:00
parent 80d57a36bd
commit 5e585dd347
5 changed files with 55 additions and 4 deletions
+3
View File
@@ -363,6 +363,7 @@ proc skipBlockComment(l: var Lexer) =
discard l.advance()
return
discard l.advance()
raise newException(ValueError, "Unclosed block comment at line " & $l.line & ", col " & $l.col)
proc readString(l: var Lexer, quote: char): string =
result = ""
@@ -389,6 +390,8 @@ proc readNumber(l: var Lexer, startLine, startCol: int): Token =
var isFloat = false
while l.pos < l.input.len and (l.input[l.pos] in Digits or l.input[l.pos] == '.'):
if l.input[l.pos] == '.':
if isFloat:
break # second dot ends the number
isFloat = true
numStr.add(l.input[l.pos])
discard l.advance()