onSymbol for overrides
This commit is contained in:
parent
438160ac2a
commit
3c71729839
3 changed files with 27 additions and 3 deletions
|
|
@ -127,6 +127,17 @@ proc getIdentifier*(nimState: NimState, name: string, kind: NimSymKind, parent="
|
|||
else:
|
||||
result = ""
|
||||
|
||||
proc getOverride*(nimState: NimState, name: string, kind: NimSymKind, parent=""): string =
|
||||
doAssert name.len != 0, "Blank identifier error"
|
||||
|
||||
if nimState.gState.onSymbol != nil:
|
||||
var
|
||||
nname = nimState.getIdentifier(name, kind, parent)
|
||||
sym = Symbol(name: nname, parent: parent, kind: kind)
|
||||
nimState.gState.onSymbol(sym)
|
||||
|
||||
result = sym.override
|
||||
|
||||
proc getUniqueIdentifier*(nimState: NimState, prefix = ""): string =
|
||||
var
|
||||
name = prefix & "_" & nimState.sourceFile.extractFilename().multiReplace([(".", ""), ("-", "")])
|
||||
|
|
|
|||
|
|
@ -648,10 +648,22 @@ proc initGrammar(): Grammar =
|
|||
case $node.tsNodeType()
|
||||
of "declaration":
|
||||
if i.name == "identifier":
|
||||
echo "# Unknown declaration " & i.val
|
||||
let
|
||||
override = nimState.getOverride(i.val, nskProc)
|
||||
|
||||
if override.len != 0:
|
||||
nimState.procStr &= &"{nimState.getComments(true)}\n{override}"
|
||||
else:
|
||||
nimState.procStr &= &"{nimState.getComments(true)}\n# Unable to wrap declaration '{i.val}'"
|
||||
else:
|
||||
if i.name == "type_identifier":
|
||||
echo "# Unknown type " & i.val
|
||||
let
|
||||
override = nimState.getOverride(i.val, nskType)
|
||||
|
||||
if override.len != 0:
|
||||
nimState.typeStr &= &"{nimState.getComments()}\n{override}"
|
||||
else:
|
||||
nimState.typeStr &= &"{nimState.getComments()}\n # Unable to wrap type '{i.val}'"
|
||||
))
|
||||
|
||||
proc initRegex(ast: ref Ast) =
|
||||
|
|
|
|||
|
|
@ -5,5 +5,6 @@ type
|
|||
name*: string
|
||||
parent*: string
|
||||
kind*: NimSymKind
|
||||
override*: string
|
||||
|
||||
OnSymbol* = proc(sym: var Symbol) {.cdecl.}
|
||||
OnSymbol* = proc(sym: var Symbol) {.cdecl.}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue