333 return Parser::T_DOUBLE | Lexer::Variant_GLSL_400;
340 else if (s[0] ==
'l') {
346 return Parser::T_LAYOUT | Lexer::Variant_GLSL_150;
353 else if (s[0] ==
'm') {
359 return Parser::T_MAT2X2 | Lexer::Variant_GLSL_120;
361 else if (s[5] ==
'3') {
362 return Parser::T_MAT2X3 | Lexer::Variant_GLSL_120;
364 else if (s[5] ==
'4') {
365 return Parser::T_MAT2X4 | Lexer::Variant_GLSL_120;
369 else if (s[3] ==
'3') {
372 return Parser::T_MAT3X2 | Lexer::Variant_GLSL_120;
374 else if (s[5] ==
'3') {
375 return Parser::T_MAT3X3 | Lexer::Variant_GLSL_120;
377 else if (s[5] ==
'4') {
378 return Parser::T_MAT3X4 | Lexer::Variant_GLSL_120;
382 else if (s[3] ==
'4') {
385 return Parser::T_MAT4X2 | Lexer::Variant_GLSL_120;
387 else if (s[5] ==
'3') {
388 return Parser::T_MAT4X3 | Lexer::Variant_GLSL_120;
390 else if (s[5] ==
'4') {
391 return Parser::T_MAT4X4 | Lexer::Variant_GLSL_120;
398 else if (s[0] ==
'r') {
404 return Parser::T_RETURN;
411 else if (s[0] ==
's') {
417 return Parser::T_SAMPLE | Lexer::Variant_Reserved;
423 else if (s[1] ==
'm') {
428 return Parser::T_SMOOTH | Lexer::Variant_GLSL_150;
434 else if (s[1] ==
't') {
439 return Parser::T_STRUCT;
445 else if (s[1] ==
'w') {
450 return Parser::T_SWITCH | Lexer::Variant_GLSL_150;
457 return Parser::T_IDENTIFIER;
1642QStringList Lexer::keywords(
int variant) {
1644 list += QLatin1String(
"do");
1645 list += QLatin1String(
"if");
1646 list += QLatin1String(
"in");
1647 list += QLatin1String(
"for");
1648 list += QLatin1String(
"int");
1649 list += QLatin1String(
"out");
1650 list += QLatin1String(
"bool");
1651 if (variant & (Lexer::Variant_GLSL_150))
1652 list += QLatin1String(
"case");
1653 list += QLatin1String(
"else");
1654 if (variant & (Lexer::Variant_GLSL_150))
1655 list += QLatin1String(
"flat");
1656 if (variant & (Lexer::Variant_GLSL_ES_100 | Lexer::Variant_GLSL_400))
1657 list += QLatin1String(
"lowp");
1658 list += QLatin1String(
"mat2");
1659 list += QLatin1String(
"mat3");
1660 list += QLatin1String(
"mat4");
1661 if (variant & (Lexer::Variant_GLSL_150))
1662 list += QLatin1String(
"uint");
1663 list += QLatin1String(
"vec2");
1664 list += QLatin1String(
"vec3");
1665 list += QLatin1String(
"vec4");
1666 list += QLatin1String(
"void");
1667 list += QLatin1String(
"true");
1668 list += QLatin1String(
"break");
1669 list += QLatin1String(
"bvec2");
1670 list += QLatin1String(
"bvec3");
1671 list += QLatin1String(
"bvec4");
1672 list += QLatin1String(
"const");
1673 if (variant & (Lexer::Variant_GLSL_400))
1674 list += QLatin1String(
"dmat2");
1675 if (variant & (Lexer::Variant_GLSL_400))
1676 list += QLatin1String(
"dmat3");
1677 if (variant & (Lexer::Variant_GLSL_400))
1678 list += QLatin1String(
"dmat4");
1679 if (variant & (Lexer::Variant_GLSL_400))
1680 list += QLatin1String(
"dvec2");
1681 if (variant & (Lexer::Variant_GLSL_400))
1682 list += QLatin1String(
"dvec3");
1683 if (variant & (Lexer::Variant_GLSL_400))
1684 list += QLatin1String(
"dvec4");
1685 list += QLatin1String(
"float");
1686 if (variant & (Lexer::Variant_GLSL_ES_100 | Lexer::Variant_GLSL_400))
1687 list += QLatin1String(
"highp");
1688 list += QLatin1String(
"inout");
1689 list += QLatin1String(
"ivec2");
1690 list += QLatin1String(
"ivec3");
1691 list += QLatin1String(
"ivec4");
1692 if (variant & (Lexer::Variant_GLSL_400))
1693 list += QLatin1String(
"patch");
1694 if (variant & (Lexer::Variant_GLSL_150))
1695 list += QLatin1String(
"uvec2");
1696 if (variant & (Lexer::Variant_GLSL_150))
1697 list += QLatin1String(
"uvec3");
1698 if (variant & (Lexer::Variant_GLSL_150))
1699 list += QLatin1String(
"uvec4");
1700 list += QLatin1String(
"while");
1701 list += QLatin1String(
"false");
1702 if (variant & (Lexer::Variant_GLSL_400))
1703 list += QLatin1String(
"double");
1704 if (variant & (Lexer::Variant_GLSL_150))
1705 list += QLatin1String(
"layout");
1706 if (variant & (Lexer::Variant_GLSL_120))
1707 list += QLatin1String(
"mat2x2");
1708 if (variant & (Lexer::Variant_GLSL_120))
1709 list += QLatin1String(
"mat2x3");
1710 if (variant & (Lexer::Variant_GLSL_120))
1711 list += QLatin1String(
"mat2x4");
1712 if (variant & (Lexer::Variant_GLSL_120))
1713 list += QLatin1String(
"mat3x2");
1714 if (variant & (Lexer::Variant_GLSL_120))
1715 list += QLatin1String(
"mat3x3");
1716 if (variant & (Lexer::Variant_GLSL_120))
1717 list += QLatin1String(
"mat3x4");
1718 if (variant & (Lexer::Variant_GLSL_120))
1719 list += QLatin1String(
"mat4x2");
1720 if (variant & (Lexer::Variant_GLSL_120))
1721 list += QLatin1String(
"mat4x3");
1722 if (variant & (Lexer::Variant_GLSL_120))
1723 list += QLatin1String(
"mat4x4");
1724 list += QLatin1String(
"return");
1725 if (variant & (Lexer::Variant_Reserved))
1726 list += QLatin1String(
"sample");
1727 if (variant & (Lexer::Variant_GLSL_150))
1728 list += QLatin1String(
"smooth");
1729 list += QLatin1String(
"struct");
1730 if (variant & (Lexer::Variant_GLSL_150))
1731 list += QLatin1String(
"switch");
1732 if (variant & (Lexer::Variant_GLSL_150))
1733 list += QLatin1String(
"default");
1734 if (variant & (Lexer::Variant_FragmentShader))
1735 list += QLatin1String(
"discard");
1736 if (variant & (Lexer::Variant_GLSL_400))
1737 list += QLatin1String(
"dmat2x2");
1738 if (variant & (Lexer::Variant_GLSL_400))
1739 list += QLatin1String(
"dmat2x3");
1740 if (variant & (Lexer::Variant_GLSL_400))
1741 list += QLatin1String(
"dmat2x4");
1742 if (variant & (Lexer::Variant_GLSL_400))
1743 list += QLatin1String(
"dmat3x2");
1744 if (variant & (Lexer::Variant_GLSL_400))
1745 list += QLatin1String(
"dmat3x3");
1746 if (variant & (Lexer::Variant_GLSL_400))
1747 list += QLatin1String(
"dmat3x4");
1748 if (variant & (Lexer::Variant_GLSL_400))
1749 list += QLatin1String(
"dmat4x2");
1750 if (variant & (Lexer::Variant_GLSL_400))
1751 list += QLatin1String(
"dmat4x3");
1752 if (variant & (Lexer::Variant_GLSL_400))
1753 list += QLatin1String(
"dmat4x4");
1754 if (variant & (Lexer::Variant_GLSL_ES_100 | Lexer::Variant_GLSL_400))
1755 list += QLatin1String(
"mediump");
1756 list += QLatin1String(
"uniform");
1757 list += QLatin1String(
"varying");
1758 if (variant & (Lexer::Variant_GLSL_120))
1759 list += QLatin1String(
"centroid");
1760 list += QLatin1String(
"continue");
1761 if (variant & (Lexer::Variant_VertexShader))
1762 list += QLatin1String(
"attribute");
1763 list += QLatin1String(
"invariant");
1764 if (variant & (Lexer::Variant_GLSL_ES_100))
1765 list += QLatin1String(
"precision");
1766 if (variant & (Lexer::Variant_GLSL_120))
1767 list += QLatin1String(
"sampler1D");
1768 list += QLatin1String(
"sampler2D");
1769 if (variant & (Lexer::Variant_GLSL_120))
1770 list += QLatin1String(
"sampler3D");
1771 if (variant & (Lexer::Variant_GLSL_150))
1772 list += QLatin1String(
"isampler1D");
1773 if (variant & (Lexer::Variant_GLSL_150))
1774 list += QLatin1String(
"isampler2D");
1775 if (variant & (Lexer::Variant_GLSL_150))
1776 list += QLatin1String(
"isampler3D");
1777 if (variant & (Lexer::Variant_GLSL_400))
1778 list += QLatin1String(
"subroutine");
1779 if (variant & (Lexer::Variant_GLSL_150))
1780 list += QLatin1String(
"usampler1D");
1781 if (variant & (Lexer::Variant_GLSL_150))
1782 list += QLatin1String(
"usampler2D");
1783 if (variant & (Lexer::Variant_GLSL_150))
1784 list += QLatin1String(
"usampler3D");
1785 if (variant & (Lexer::Variant_GLSL_150))
1786 list += QLatin1String(
"sampler2DMS");
1787 list += QLatin1String(
"samplerCube");
1788 if (variant & (Lexer::Variant_GLSL_150))
1789 list += QLatin1String(
"isampler2DMS");
1790 if (variant & (Lexer::Variant_GLSL_150))
1791 list += QLatin1String(
"isamplerCube");
1792 if (variant & (Lexer::Variant_GLSL_150))
1793 list += QLatin1String(
"usampler2DMS");
1794 if (variant & (Lexer::Variant_GLSL_150))
1795 list += QLatin1String(
"usamplerCube");
1796 if (variant & (Lexer::Variant_GLSL_150))
1797 list += QLatin1String(
"noperspective");
1798 list += QLatin1String(
"sampler2DRect");
1799 if (variant & (Lexer::Variant_GLSL_150))
1800 list += QLatin1String(
"samplerBuffer");
1801 if (variant & (Lexer::Variant_GLSL_150))
1802 list += QLatin1String(
"isampler2DRect");
1803 if (variant & (Lexer::Variant_GLSL_150))
1804 list += QLatin1String(
"isamplerBuffer");
1805 if (variant & (Lexer::Variant_GLSL_150))
1806 list += QLatin1String(
"sampler1DArray");
1807 if (variant & (Lexer::Variant_GLSL_150))
1808 list += QLatin1String(
"sampler2DArray");
1809 if (variant & (Lexer::Variant_GLSL_150))
1810 list += QLatin1String(
"usampler2DRect");
1811 if (variant & (Lexer::Variant_GLSL_150))
1812 list += QLatin1String(
"usamplerBuffer");
1813 if (variant & (Lexer::Variant_GLSL_150))
1814 list += QLatin1String(
"isampler1DArray");
1815 if (variant & (Lexer::Variant_GLSL_150))
1816 list += QLatin1String(
"isampler2DArray");
1817 if (variant & (Lexer::Variant_GLSL_120))
1818 list += QLatin1String(
"sampler1DShadow");
1819 if (variant & (Lexer::Variant_GLSL_120))
1820 list += QLatin1String(
"sampler2DShadow");
1821 if (variant & (Lexer::Variant_GLSL_150))
1822 list += QLatin1String(
"usampler1DArray");
1823 if (variant & (Lexer::Variant_GLSL_150))
1824 list += QLatin1String(
"usampler2DArray");
1825 if (variant & (Lexer::Variant_GLSL_150))
1826 list += QLatin1String(
"sampler2DMSArray");
1827 if (variant & (Lexer::Variant_GLSL_400))
1828 list += QLatin1String(
"samplerCubeArray");
1829 if (variant & (Lexer::Variant_GLSL_150))
1830 list += QLatin1String(
"isampler2DMSArray");
1831 if (variant & (Lexer::Variant_GLSL_400))
1832 list += QLatin1String(
"isamplerCubeArray");
1833 if (variant & (Lexer::Variant_GLSL_400))
1834 list += QLatin1String(
"samplerCubeShadow");
1835 if (variant & (Lexer::Variant_GLSL_150))
1836 list += QLatin1String(
"usampler2DMSarray");
1837 if (variant & (Lexer::Variant_GLSL_400))
1838 list += QLatin1String(
"usamplerCubeArray");
1839 list += QLatin1String(
"sampler2DRectShadow");
1840 if (variant & (Lexer::Variant_GLSL_150))
1841 list += QLatin1String(
"sampler1DArrayShadow");
1842 if (variant & (Lexer::Variant_GLSL_150))
1843 list += QLatin1String(
"sampler2DArrayShadow");
1844 if (variant & (Lexer::Variant_GLSL_400))
1845 list += QLatin1String(
"samplerCubeArrayShadow");