aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nimterop/ast2.nim2
-rw-r--r--nimterop/exprparser.nim11
2 files changed, 12 insertions, 1 deletions
diff --git a/nimterop/ast2.nim b/nimterop/ast2.nim
index 4c06cc6..aa0e8d8 100644
--- a/nimterop/ast2.nim
+++ b/nimterop/ast2.nim
@@ -106,7 +106,7 @@ proc newConstDef(gState: State, node: TSNode, fname = "", fval = ""): PNode =
if not maybeTyNode.isNil:
let name = maybeTyNode.getName()
case name
- of "type_descriptor", "sized_type_specifier":
+ of "type_descriptor", "sized_type_specifier", "primitive_type":
discard
else:
# Can't do gState.parseCExpression(root) here for some reason?
diff --git a/nimterop/exprparser.nim b/nimterop/exprparser.nim
index 5372c2f..b0c34c1 100644
--- a/nimterop/exprparser.nim
+++ b/nimterop/exprparser.nim
@@ -549,6 +549,17 @@ proc processTSNode(gState: State, node: TSNode, typeofNode: var PNode): PNode =
# Output -> true, false
result = gState.parseString(node.val)
of "type_descriptor":
+ # Input => int*
+ # (type_descriptor 1 2 4 "int*"
+ # (type_identifier 1 2 3 "int")
+ # (abstract_pointer_declarator 1 3 1 "*")
+ # )
+ #
+ # Output => ptr int
+ #
+ # nkPtrTy(
+ # nkIdent("int")
+ # )
let pointerDecl = node.anyChildInTree("abstract_pointer_declarator")
if pointerDecl.isNil: