CSharpUtils.Templates.TemplateHandler.HandleLevel_TagSpecial_If C# (CSharp) Метод

HandleLevel_TagSpecial_If() публичный Метод

public HandleLevel_TagSpecial_If ( ) : ParserNode
Результат ParserNode
		public ParserNode HandleLevel_TagSpecial_If()
		{
			bool Alive = true;

			Tokens.MoveNext();

			ParserNode ConditionNode = HandleLevel_Expression();
			Tokens.ExpectValueAndNext("%}");

			ParserNode BodyIfNode = HandleLevel_Root();
			ParserNode BodyElseNode = new DummyParserNode();

			while (Alive)
			{
				switch (CurrentToken.Text)
				{
					case "endif":
						Tokens.MoveNext();
						Tokens.ExpectValueAndNext("%}");
						Alive = false;
						break;
					case "else":
						Tokens.MoveNext();
						Tokens.ExpectValueAndNext("%}");

						BodyElseNode = HandleLevel_Root();

						break;
					default:
						throw (new Exception(String.Format("Unprocessed Token Type '{0}'", CurrentTokenType)));
				}
			}

			return new ParserNodeIf()
			{
				ConditionNode = ConditionNode,
				BodyIfNode = BodyIfNode,
				BodyElseNode = BodyElseNode,
			};
		}