/// <summary> /// Creates a parser for an identifier /// </summary> /// <returns>the parser</returns> public static IParser <char, string> Identifier() { // identifier: // available-identifier // @ identifier-or-keyword return(Expect.OneOf( AvailableIdentifier(), Expect.Concatenation( Expect.Char('@'), IdentifierOrKeyWord(), (at, identifierOrKeyWord) => string.Concat(at, identifierOrKeyWord)) )); }