Print code in debug output
This commit is contained in:
parent
faeb43afbe
commit
b426bc49ba
1 changed files with 9 additions and 0 deletions
|
|
@ -6,6 +6,8 @@ import "."/[getters, globals, treesitter/api]
|
||||||
|
|
||||||
proc saveNodeData(node: TSNode, nimState: NimState): bool =
|
proc saveNodeData(node: TSNode, nimState: NimState): bool =
|
||||||
let name = $node.tsNodeType()
|
let name = $node.tsNodeType()
|
||||||
|
|
||||||
|
# Atoms are nodes whose values are to be saved
|
||||||
if name in gAtoms:
|
if name in gAtoms:
|
||||||
let
|
let
|
||||||
pname = node.getPxName(1)
|
pname = node.getPxName(1)
|
||||||
|
|
@ -16,16 +18,20 @@ proc saveNodeData(node: TSNode, nimState: NimState): bool =
|
||||||
var
|
var
|
||||||
val = nimState.getNodeVal(node)
|
val = nimState.getNodeVal(node)
|
||||||
|
|
||||||
|
# Skip since value already obtained from parent atom
|
||||||
if name == "primitive_type" and pname == "sized_type_specifier":
|
if name == "primitive_type" and pname == "sized_type_specifier":
|
||||||
return true
|
return true
|
||||||
|
|
||||||
|
# Skip since value already obtained from parent expression
|
||||||
if name in ["number_literal", "identifier"] and pname in gExpressions:
|
if name in ["number_literal", "identifier"] and pname in gExpressions:
|
||||||
return true
|
return true
|
||||||
|
|
||||||
|
# Add reference point in saved data for bitfield_clause
|
||||||
if name in ["number_literal"] and pname == "bitfield_clause":
|
if name in ["number_literal"] and pname == "bitfield_clause":
|
||||||
nimState.data.add(("bitfield_clause", val))
|
nimState.data.add(("bitfield_clause", val))
|
||||||
return true
|
return true
|
||||||
|
|
||||||
|
# Process value as a type
|
||||||
if name in ["primitive_type", "sized_type_specifier"]:
|
if name in ["primitive_type", "sized_type_specifier"]:
|
||||||
val = val.getType()
|
val = val.getType()
|
||||||
|
|
||||||
|
|
@ -58,6 +64,7 @@ proc saveNodeData(node: TSNode, nimState: NimState): bool =
|
||||||
elif name == "identifier":
|
elif name == "identifier":
|
||||||
nimState.data.add(("pointer_declarator", ""))
|
nimState.data.add(("pointer_declarator", ""))
|
||||||
|
|
||||||
|
# Save node value for a top-level expression
|
||||||
elif name in gExpressions and name != "escape_sequence":
|
elif name in gExpressions and name != "escape_sequence":
|
||||||
if $node.tsNodeParent.tsNodeType() notin gExpressions:
|
if $node.tsNodeParent.tsNodeType() notin gExpressions:
|
||||||
nimState.data.add((name, nimState.getNodeVal(node)))
|
nimState.data.add((name, nimState.getNodeVal(node)))
|
||||||
|
|
@ -125,6 +132,8 @@ proc searchAst(root: TSNode, astTable: AstTable, nimState: NimState) =
|
||||||
name = $node.tsNodeType()
|
name = $node.tsNodeType()
|
||||||
if name in astTable:
|
if name in astTable:
|
||||||
for ast in astTable[name]:
|
for ast in astTable[name]:
|
||||||
|
if nimState.gState.debug:
|
||||||
|
echo "\n# " & nimState.getNodeVal(node).replace("\n", "\n# ") & "\n"
|
||||||
if searchAstForNode(ast, node, nimState):
|
if searchAstForNode(ast, node, nimState):
|
||||||
ast.tonim(ast, node, nimState)
|
ast.tonim(ast, node, nimState)
|
||||||
if nimState.gState.debug:
|
if nimState.gState.debug:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue