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