void ReadVariables ()
		{
			for (int i = 0; i < m_variableCount; i++) {
				Scope parent = Parent ();

				Variable v = new Variable (
					String (),
					(VariableAttributes) Int ());

				v.Signature = MiscPosSize ();
				Pop1 ();
				v.Index = Int ();
				Pop2 ();
				v.StartOffset = Int ();
				v.EndOffset = Int ();
				Pop2 ();
				v.HiddenFromDebugger = Int () == 1;

				parent.Variables.Add (v);
			}
		}
		public virtual void VisitVariable (Variable variable)
		{
		}
		public void Remove (Variable value)
		{
			m_items.Remove (value);
		}
		public void Insert (int index, Variable value)
		{
			m_items.Insert (index, value);
		}
		public int IndexOf (Variable value)
		{
			return m_items.IndexOf (value);
		}
		public bool Contains (Variable value)
		{
			return m_items.Contains (value);
		}
		public void Add (Variable value)
		{
			m_items.Add (value);
		}