     if arg.indexOf("-c:") != -1
         compileCommands[arg.split(":")[1]] = args[i + 1]
         i += 2
+    else if arg == "-d"
+        assert(args[i + 1].search(/^(\/|\.\/|\.\.\/)/) == -1)
+        dummies.push(args[i + 1])
+        i += 2
     else
+        assert(arg[0] != "-")
         file = arg
         i++
 checkCode(path.resolve(file))

    mods.push(mod)
    mod.code = code
    mod.nameIndexes = {}
    if filePath?
        filePathIndexesInMods[filePath] = mods.length - 1
    parsed = esprima.parse(code)
    checkTreeNode = (node) ->
        if not (typeof node == "object" and node != null)

resolve = require("resolve")
fs = require("fs")
path = require("path")
cprocess = require("child_process")
assert = require("assert")
#===============================================================================
mods = []
filePathIndexesInMods = {}
compileCommands = {}
dummies = []
checkCode = (filePath, isDummy = false) ->
    rawCodeType = path.extname(filePath).substr(1) # strip the leading "."
    rawCode = fs.readFileSync(filePath, {encoding: "utf8"})
    baseDirectory = path.dirname(filePath)
    code =
        if isDummy
            ""
        else if rawCodeType == "js"
            rawCode
        else
            cprocess.execSync(compileCommands[rawCodeType], {
                encoding: "utf8"
                input: rawCode
            })
