 	_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 }

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


				return
		err "Variable #{x} not found in any context!"
	else
		if x[0] != '$' and !$pragma['allow_override_declarations'] and _context[_context.length-1][x]
			err "Cannot override variable #{x} declared in the same scope!"
			return
		_context[_context.length-1][x] = val
		debug "Created new variable #{x} = #{val} in context ##{_context.length-1}", 2

