void WalkComment(IToken token)
		{
			if (JavaScriptRegionStart.IsRegionStart(token)) {
				WalkRegionStart(token);
			} else if (JavaScriptRegionEnd.IsRegionEnd(token)) {
				WalkRegionEnd(token);
			}
		}
		void WalkRegionEnd(IToken token)
		{
			if (regions.Count > 0) {
				JavaScriptRegionStart regionStart = regions.Pop();
				
				var regionEnd = new JavaScriptRegionEnd(token);
				var region = new JavaScriptRegion(regionStart, regionEnd);
				region.AddRegion(compilationUnit.FoldingRegions);
			}
		}
		void WalkRegionEnd(IToken token)
		{
			if (regions.Count > 0) {
				JavaScriptRegionStart regionStart = regions.Pop();
				
				var regionEnd = new JavaScriptRegionEnd(token);
				var region = new JavaScriptRegion(regionStart, regionEnd);
				region.AddRegion(compilationUnit.FoldingRegions);
			}
		}
 public JavaScriptRegion(JavaScriptRegionStart start, JavaScriptRegionEnd end)
 {
     this.start = start;
     this.end   = end;
 }
		public JavaScriptRegion(JavaScriptRegionStart start, JavaScriptRegionEnd end)
		{
			this.start = start;
			this.end = end;
		}