| 1695 | } |
| 1696 | |
| 1697 | void fxGetNextTokenJSXAttribute(txParser* parser) |
| 1698 | { |
| 1699 | txString p = parser->buffer; |
| 1700 | txString q = p + parser->bufferSize - 1; |
| 1701 | txU4 quote = 0; |
| 1702 | parser->states[2].crlf = 0; |
| 1703 | parser->states[2].escaped = 0; |
| 1704 | parser->states[2].integer = 0; |
| 1705 | parser->states[2].modifierLength = 0; |
| 1706 | parser->states[2].modifier = parser->emptyString; |
| 1707 | parser->states[2].number = 0; |
| 1708 | parser->states[2].rawLength = 0; |
| 1709 | parser->states[2].raw = parser->emptyString; |
| 1710 | parser->states[2].stringLength = 0; |
| 1711 | parser->states[2].string = parser->emptyString; |
| 1712 | parser->states[2].symbol = C_NULL; |
| 1713 | parser->states[2].token = XS_NO_TOKEN; |
| 1714 | while (parser->states[2].token == XS_NO_TOKEN) { |
| 1715 | switch (parser->character) { |
| 1716 | case C_EOF: |
| 1717 | parser->states[2].token = XS_TOKEN_EOF; |
| 1718 | break; |
| 1719 | case 10: |
| 1720 | case 0x2028: // <LS> |
| 1721 | case 0x2029: // <PS> |
| 1722 | parser->states[2].line++; |
| 1723 | if (quote) |
| 1724 | p = fxUTF8Buffer(parser, parser->character, p, q); |
| 1725 | fxGetNextCharacter(parser); |
| 1726 | parser->states[2].crlf = 1; |
| 1727 | break; |
| 1728 | case 13: |
| 1729 | parser->states[2].line++; |
| 1730 | if (quote) |
| 1731 | p = fxUTF8Buffer(parser, parser->character, p, q); |
| 1732 | fxGetNextCharacter(parser); |
| 1733 | if (parser->character == 10) { |
| 1734 | if (quote) |
| 1735 | p = fxUTF8Buffer(parser, parser->character, p, q); |
| 1736 | fxGetNextCharacter(parser); |
| 1737 | } |
| 1738 | parser->states[2].crlf = 1; |
| 1739 | break; |
| 1740 | case '\t': |
| 1741 | case 11: |
| 1742 | case 12: |
| 1743 | case ' ': |
| 1744 | case 0x00A0: |
| 1745 | case 0x1680: |
| 1746 | case 0x2000: |
| 1747 | case 0x2001: |
| 1748 | case 0x2002: |
| 1749 | case 0x2003: |
| 1750 | case 0x2004: |
| 1751 | case 0x2005: |
| 1752 | case 0x2006: |
| 1753 | case 0x2007: |
| 1754 | case 0x2008: |
no test coverage detected