 	_program = []
 	_programsrclines = []
 	_labels = {}
-	_context = [STD_CONTEXT]
+	_context = [Object.assign({}, STD_CONTEXT)]
 	_lineno = 1
+	$pragma = {}
 	debug "Program reset.", 3
 
 # reads the whole program in a table { lineno: line }

				return
		err "Variable #{x} not found in any context!"
	else
		_context[_context.length-1][x] = val
		debug "Created new variable #{x} = #{val} in context ##{_context.length-1}", 2


				when 'undeclared_is_error'
					debug "[meta] error on undeclared var enabled"
					$pragma['undeclared_is_error'] = on
				when 'allow_override_declarations'
					debug "[meta] Enabling declaration overriding"
					$pragma['allow_override_declarations'] = on
				else
					debug "[meta] unknown pragma: #{params[0]}"

