             if not node.label
               defLocation = lookupIdentifier name, node
               if not defLocation
-                throw new Error "#{name} used but not defined"
+                if nonstrict
+                  warnings.push "#{name} used but not defined"
+                else
+                  throw new Error "#{name} used but not defined"
             escapedName
 
 isList = (node) ->

# the expression part
compiledBottom = (source) ->
  variableCounter = 1
  compileBottom preCompileBottom source

# single exp
compiledExp = (source) ->
  variableCounter = 1
  "(#{compileSingleExp preCompileExp source})"

# list of definitions

  parentize typify astize tokenize source

variableCounter = 1
warnings = []
nonstrict = no

# exp followed by list of definitions
compiled = (source) ->
