State SwitchToDirective(IParseContext context, ref string rollback)
        {
            string key  = context.KeywordBuilder.ToString();
            string name = key.Trim();
            var    dir  = new RazorDirective(context.LocationMinus(key.Length + 2))
            {
                Name = name,
                IsSimpleDirective = RazorSymbols.IsSimpleDirective(name)
            };

            context.Nodes.Push(dir);
            rollback = String.Empty;
            return(EnsureSetAndAdopted <RazorDirectiveState> (ref directiveState));
        }
		State SwitchToDirective (IParseContext context, ref string rollback)
		{
			string key = context.KeywordBuilder.ToString ();
			string name = key.Trim ();
			var dir = new RazorDirective (context.LocationMinus (key.Length + 2)) {
				Name = name,
				IsSimpleDirective = RazorSymbols.IsSimpleDirective (name)
			};
			context.Nodes.Push (dir);
			rollback = String.Empty;
			return EnsureSetAndAdopted<RazorDirectiveState> (ref directiveState);
		}