Improve octal fix
This commit is contained in:
parent
fbc8c2ad9e
commit
69e372beea
3 changed files with 16 additions and 14 deletions
|
|
@ -1,4 +1,7 @@
|
||||||
import hashes, macros, osproc, sets, strformat, strutils, tables
|
import hashes, osproc, sets, strformat, strutils
|
||||||
|
|
||||||
|
when not defined(TOAST):
|
||||||
|
import macros, tables
|
||||||
|
|
||||||
import os except findExe, sleep
|
import os except findExe, sleep
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import json, macros, os, osproc, sets, strformat, strutils
|
import json, os, osproc, sets, strformat, strutils
|
||||||
|
|
||||||
when nimvm:
|
when nimvm:
|
||||||
when (NimMajor, NimMinor, NimPatch) >= (1, 2, 0):
|
when (NimMajor, NimMinor, NimPatch) >= (1, 2, 0):
|
||||||
|
|
@ -55,6 +55,7 @@ proc getProjectDir*(): string =
|
||||||
result = querySetting(projectFull).parentDir()
|
result = querySetting(projectFull).parentDir()
|
||||||
else:
|
else:
|
||||||
# Get from `macros`
|
# Get from `macros`
|
||||||
|
import macros
|
||||||
result = getProjectPath()
|
result = getProjectPath()
|
||||||
else:
|
else:
|
||||||
discard
|
discard
|
||||||
|
|
|
||||||
|
|
@ -140,15 +140,16 @@ proc getIntNode(number, suffix: string): PNode {.inline.} =
|
||||||
var
|
var
|
||||||
val: BiggestInt
|
val: BiggestInt
|
||||||
flags: TNodeFlags
|
flags: TNodeFlags
|
||||||
if number.startsWith("0X") or number.startsWith("0x"):
|
if number.len > 1 and number[0] == '0':
|
||||||
val = parseHexInt(number)
|
if number[1] in ['x', 'X']:
|
||||||
flags = {nfBase16}
|
val = parseHexInt(number)
|
||||||
elif number.startsWith("0B") or number.startsWith("0b"):
|
flags = {nfBase16}
|
||||||
val = parseBinInt(number)
|
elif number[1] in ['b', 'B']:
|
||||||
flags = {nfBase2}
|
val = parseBinInt(number)
|
||||||
elif number.startsWith("0O") or number.startsWith("0o"):
|
flags = {nfBase2}
|
||||||
val = parseOctInt(number)
|
else:
|
||||||
flags = {nfBase8}
|
val = parseOctInt(number)
|
||||||
|
flags = {nfBase8}
|
||||||
else:
|
else:
|
||||||
val = parseInt(number)
|
val = parseInt(number)
|
||||||
|
|
||||||
|
|
@ -201,9 +202,6 @@ proc processNumberLiteral(gState: State, node: TSNode): PNode =
|
||||||
if number.startsWith("-"):
|
if number.startsWith("-"):
|
||||||
number = number[1 ..< number.len]
|
number = number[1 ..< number.len]
|
||||||
prefix = "-"
|
prefix = "-"
|
||||||
if number.len > 1 and number[0] == '0' and number[1] notin ['x', 'X']:
|
|
||||||
# Octal 0123
|
|
||||||
number = "0o" & number[1 .. ^1]
|
|
||||||
if tripleEndings.any(proc (s: string): bool = number.endsWith(s)):
|
if tripleEndings.any(proc (s: string): bool = number.endsWith(s)):
|
||||||
suffix = number[^3 .. ^1]
|
suffix = number[^3 .. ^1]
|
||||||
number = number[0 ..< ^3]
|
number = number[0 ..< ^3]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue