| 1980 | } |
| 1981 | |
| 1982 | void fxRelationalExpression(txParser* parser) |
| 1983 | { |
| 1984 | if (parser->states[0].token == XS_TOKEN_PRIVATE_IDENTIFIER) { |
| 1985 | txInteger aLine = parser->states[0].line; |
| 1986 | fxPushSymbol(parser, parser->states[0].symbol); |
| 1987 | fxGetNextToken(parser); |
| 1988 | fxMatchToken(parser, XS_TOKEN_IN); |
| 1989 | if (parser->flags & mxForFlag) |
| 1990 | fxReportParserError(parser, parser->states[0].line, "invalid %s", gxTokenNames[XS_TOKEN_IN]); |
| 1991 | fxShiftExpression(parser); |
| 1992 | fxCheckArrowFunction(parser, 2); |
| 1993 | fxPushNodeStruct(parser, 2, XS_TOKEN_PRIVATE_IDENTIFIER, aLine); |
| 1994 | } |
| 1995 | else { |
| 1996 | fxShiftExpression(parser); |
| 1997 | if ((parser->flags & mxForFlag) && ((parser->states[0].token == XS_TOKEN_IN) || fxIsKeyword(parser, parser->ofSymbol))) |
| 1998 | return; |
| 1999 | while (gxTokenFlags[parser->states[0].token] & XS_TOKEN_RELATIONAL_EXPRESSION) { |
| 2000 | txToken aToken = parser->states[0].token; |
| 2001 | txInteger aLine = parser->states[0].line; |
| 2002 | fxMatchToken(parser, aToken); |
| 2003 | fxShiftExpression(parser); |
| 2004 | fxCheckArrowFunction(parser, 2); |
| 2005 | fxPushNodeStruct(parser, 2, aToken, aLine); |
| 2006 | } |
| 2007 | } |
| 2008 | } |
| 2009 | |
| 2010 | void fxShiftExpression(txParser* parser) |
| 2011 | { |
no test coverage detected