summary refs log tree commit diff stats
path: root/rod/c2nim/cpp.nim
diff options
context:
space:
mode:
Diffstat (limited to 'rod/c2nim/cpp.nim')
-rwxr-xr-xrod/c2nim/cpp.nim16
1 files changed, 10 insertions, 6 deletions
diff --git a/rod/c2nim/cpp.nim b/rod/c2nim/cpp.nim
index f59c86044..e7c7e86b0 100755
--- a/rod/c2nim/cpp.nim
+++ b/rod/c2nim/cpp.nim
@@ -45,7 +45,7 @@ proc parseDefine(p: var TParser): PNode =
     eat(p, pxParLe)
     var params = newNodeP(nkFormalParams, p)
     # return type; not known yet:
-    addSon(params, nil)  
+    addSon(params, ast.emptyNode)  
     var identDefs = newNodeP(nkIdentDefs, p)
     while p.tok.xkind != pxParRi: 
       addSon(identDefs, skipIdent(p))
@@ -53,13 +53,13 @@ proc parseDefine(p: var TParser): PNode =
       if p.tok.xkind != pxComma: break
       getTok(p)
     addSon(identDefs, newIdentNodeP("expr", p))
-    addSon(identDefs, nil)
+    addSon(identDefs, ast.emptyNode)
     addSon(params, identDefs)
     eat(p, pxParRi)
     
-    addSon(result, nil) # no generic parameters
+    addSon(result, ast.emptyNode) # no generic parameters
     addSon(result, params)
-    addSon(result, nil) # no pragmas
+    addSon(result, ast.emptyNode) # no pragmas
     var kind = parseDefineBody(p, result)
     params.sons[0] = newIdentNodeP(kind, p)
     eatNewLine(p, result)
@@ -70,7 +70,7 @@ proc parseDefine(p: var TParser): PNode =
       getTok(p) # skip #define
       var c = newNodeP(nkConstDef, p)
       addSon(c, skipIdentExport(p))
-      addSon(c, nil)
+      addSon(c, ast.emptyNode)
       skipStarCom(p, c)
       if p.tok.xkind in {pxLineComment, pxNewLine, pxEof}:
         addSon(c, newIdentNodeP("true", p))
@@ -78,6 +78,7 @@ proc parseDefine(p: var TParser): PNode =
         addSon(c, expression(p))
       addSon(result, c)
       eatNewLine(p, c)
+  assert result != nil
   
 proc parseDefBody(p: var TParser, m: var TMacro, params: seq[string]) =
   m.body = @[]
@@ -147,7 +148,7 @@ proc parseInclude(p: var TParser): PNode =
       skipLine(p)
   if sonsLen(result) == 0: 
     # we only parsed includes that we chose to ignore:
-    result = nil
+    result = ast.emptyNode
 
 proc definedExprAux(p: var TParser): PNode = 
   result = newNodeP(nkCall, p)
@@ -226,6 +227,7 @@ proc parseIfdef(p: var TParser): PNode =
   case p.tok.s
   of "__cplusplus":
     skipUntilEndif(p)
+    result = ast.emptyNode
   of c2nimSymbol:
     skipLine(p)
     result = parseStmtList(p)
@@ -238,6 +240,7 @@ proc parseIfdef(p: var TParser): PNode =
     parseIfDirAux(p, result)
   
 proc parseIfndef(p: var TParser): PNode = 
+  result = ast.emptyNode
   getTok(p) # skip #ifndef
   ExpectIdent(p)
   if p.tok.s == c2nimSymbol: 
@@ -295,6 +298,7 @@ proc parseMangleDir(p: var TParser) =
   eatNewLine(p, nil)
 
 proc parseDir(p: var TParser): PNode = 
+  result = ast.emptyNode
   assert(p.tok.xkind in {pxDirective, pxDirectiveParLe})
   case p.tok.s
   of "define": result = parseDefine(p)