* Parse a function name. */
| 867 | * Parse a function name. |
| 868 | */ |
| 869 | static const char *parseFunctionName(Parser &parser) |
| 870 | { |
| 871 | if (!isalpha(parser.s[0]) && parser.s[0] != '_') |
| 872 | parser.unexpectedToken(); |
| 873 | for (unsigned i = 1; parser.s[i] != '\0'; i++) |
| 874 | { |
| 875 | if (!isalpha(parser.s[i]) && !isdigit(parser.s[i]) && |
| 876 | parser.s[i] != '_') |
| 877 | parser.unexpectedToken(); |
| 878 | } |
| 879 | switch (parser.getTokenFromName(parser.s)) |
| 880 | { |
| 881 | case TOKEN_IF: case TOKEN_GOTO: |
| 882 | parser.unexpectedToken(); |
| 883 | default: |
| 884 | break; |
| 885 | } |
| 886 | return strDup(parser.s); |
| 887 | } |
| 888 | |
| 889 | /* |
| 890 | * Parse a name. |
no test coverage detected