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); }
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; }