summary refs log tree commit diff stats
path: root/rod/expandimportc.nim
diff options
context:
space:
mode:
Diffstat (limited to 'rod/expandimportc.nim')
-rw-r--r--rod/expandimportc.nim73
1 files changed, 0 insertions, 73 deletions
diff --git a/rod/expandimportc.nim b/rod/expandimportc.nim
deleted file mode 100644
index d4b2fee18..000000000
--- a/rod/expandimportc.nim
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-#
-#           The Nimrod Compiler
-#        (c) Copyright 2010 Andreas Rumpf
-#
-#    See the file "copying.txt", included in this
-#    distribution, for details about the copyright.
-#
-
-## Simple tool to expand ``importc`` pragmas. Used for the clean up process of
-## the diverse wrappers.
-
-import 
-  os, ropes, idents, ast, pnimsyn, rnimsyn, msgs, wordrecg, syntaxes, pegs
-
-proc modifyPragmas(n: PNode, name: string) =
-  if n == nil: return
-  for i in 0..len(n)-1: 
-    var it = n[i]
-    if it.kind == nkIdent and whichKeyword(it.ident) == wImportc:
-      var x = newNode(nkExprColonExpr)
-      add(x, it)
-      add(x, newStrNode(nkStrLit, name))
-      n.sons[i] = x
-
-proc getName(n: PNode): string = 
-  case n.kind
-  of nkPostfix: result = getName(n[1])
-  of nkPragmaExpr: result = getName(n[0])
-  of nkSym: result = n.sym.name.s
-  of nkIdent: result = n.ident.s
-  of nkAccQuoted: result = getName(n[0])
-  else: internalError(n.info, "getName()")
-
-proc processRoutine(n: PNode) =
-  var name = getName(n[namePos])
-  modifyPragmas(n[pragmasPos], name)
-  
-proc processIdent(ident, prefix: string, n: PNode): string =
-  var pattern = sequence(capture(?(termIgnoreCase"T" / termIgnoreCase"P")),
-                         termIgnoreCase(prefix), ?term('_'), capture(*any()))
-  if ident =~ pattern:
-    result = matches[0] & matches[1]
-  else:
-    result = ident
-  
-proc processTree(n: PNode, prefix: string) =
-  if n == nil: return
-  case n.kind
-  of nkEmpty..pred(nkIdent), succ(nkIdent)..nkNilLit: nil
-  of nkIdent:
-    if prefix.len > 0: n.ident = getIdent(processIdent(n.ident.s, prefix, n))
-  of nkProcDef, nkConverterDef:
-    processRoutine(n)
-    for i in 0..sonsLen(n)-1: processTree(n[i], prefix)
-  else:
-    for i in 0..sonsLen(n)-1: processTree(n[i], prefix)
-
-proc main*(infile, outfile, prefix: string) =
-  var module = ParseFile(infile)
-  processTree(module, prefix)
-  renderModule(module, outfile)
-
-when isMainModule:
-  if paramcount() >= 1:
-    var infile = addFileExt(paramStr(1), "nim")
-    var outfile = changeFileExt(infile, "new.nim")
-    if paramCount() >= 2:
-      outfile = addFileExt(paramStr(2), "new.nim")
-    var prefix = if paramCount() >= 3: paramStr(3) else: ""
-    main(infile, outfile, prefix)
-  else:
-    echo "usage: expand_importc filename[.nim] outfilename[.nim] [prefix]"