Esempio n. 1
0
        public static LexStateFunc LexKeyword(LexerBase l)
        {
            l.AcceptWord("{{");
            l.AcceptAnyChar(" ");
            l.Ignore();

            if (l.Accept("."))
            {
                return(LexModelKey);
            }

            while (true)
            {
                var c = l.Next();
                if (!char.IsLetterOrDigit(c))
                {
                    l.Backup();
                    break;
                }
            }

            var token = l.Emit(TokenType.Function);

            l.AcceptAnyChar(" (");
            l.Ignore();

            if (token.Value == "if")
            {
                // despues de un if viene una función
                return(LexKeyword);
            }

            switch (token.Value)
            {
            case "end":
            case "else":
                return(LexInstruction);

            case "include":
                return(LexParameter);
            }

            return(LexParameters);
        }
Esempio n. 2
0
        public static LexStateFunc LexKeyword(LexerBase l)
        {
            l.AcceptWord("{{");
            l.AcceptAnyChar(" ");
            l.Ignore();

			if(l.Accept("."))
			{
				return LexModelKey;
			}

            while (true)
            {
                var c = l.Next();
				if (!char.IsLetterOrDigit(c))
                {
                    l.Backup();
                    break;
                }
            }

			var token = l.Emit(TokenType.Function);
			l.AcceptAnyChar(" (");
			l.Ignore();

			if(token.Value == "if")
			{
				// despues de un if viene una función
				return LexKeyword;
			}

			switch(token.Value)
			{		
				case "end":
				case "else":
					return LexInstruction;	

				case "include":
					return LexParameter;
			}

            return LexParameters;
		}