successfully parse a few of our full GLSL/HLSL shaders.legacy
| @@ -39,13 +39,13 @@ bool EasyMeshCompiler::ParseString(char const *command) | |||||
| void EasyMeshCompiler::Error(const class location& l, const std::string& m) | void EasyMeshCompiler::Error(const class location& l, const std::string& m) | ||||
| { | { | ||||
| Log::Error("Syntax error line %d column %d: %s", | |||||
| Log::Error("EasyMesh syntax error line %d column %d: %s\n", | |||||
| l.begin.line, l.begin.column, m.c_str()); | l.begin.line, l.begin.column, m.c_str()); | ||||
| } | } | ||||
| void EasyMeshCompiler::Error(const std::string& m) | void EasyMeshCompiler::Error(const std::string& m) | ||||
| { | { | ||||
| Log::Error("Syntax error: %s", m.c_str()); | |||||
| Log::Error("EasyMesh syntax error: %s\n", m.c_str()); | |||||
| } | } | ||||
| } /* namespace lol */ | } /* namespace lol */ | ||||
| @@ -118,365 +118,365 @@ namespace lol { | |||||
| GT_LOWP = 274, | GT_LOWP = 274, | ||||
| GT_PRECISION = 275, | GT_PRECISION = 275, | ||||
| GT_ATTRIBUTE = 276, | GT_ATTRIBUTE = 276, | ||||
| GT_VEC2 = 277, | |||||
| GT_VEC3 = 278, | |||||
| GT_VEC4 = 279, | |||||
| GT_BVEC2 = 280, | |||||
| GT_BVEC3 = 281, | |||||
| GT_BVEC4 = 282, | |||||
| GT_DVEC2 = 283, | |||||
| GT_DVEC3 = 284, | |||||
| GT_DVEC4 = 285, | |||||
| GT_IVEC2 = 286, | |||||
| GT_IVEC3 = 287, | |||||
| GT_IVEC4 = 288, | |||||
| GT_UVEC2 = 289, | |||||
| GT_UVEC3 = 290, | |||||
| GT_UVEC4 = 291, | |||||
| GT_MAT2 = 292, | |||||
| GT_MAT2X2 = 293, | |||||
| GT_MAT2X3 = 294, | |||||
| GT_MAT2X4 = 295, | |||||
| GT_MAT3 = 296, | |||||
| GT_MAT3X2 = 297, | |||||
| GT_MAT3X3 = 298, | |||||
| GT_MAT3X4 = 299, | |||||
| GT_MAT4 = 300, | |||||
| GT_MAT4X2 = 301, | |||||
| GT_MAT4X3 = 302, | |||||
| GT_MAT4X4 = 303, | |||||
| GT_DMAT2 = 304, | |||||
| GT_DMAT2X2 = 305, | |||||
| GT_DMAT2X3 = 306, | |||||
| GT_DMAT2X4 = 307, | |||||
| GT_DMAT3 = 308, | |||||
| GT_DMAT3X2 = 309, | |||||
| GT_DMAT3X3 = 310, | |||||
| GT_DMAT3X4 = 311, | |||||
| GT_DMAT4 = 312, | |||||
| GT_DMAT4X2 = 313, | |||||
| GT_DMAT4X3 = 314, | |||||
| GT_DMAT4X4 = 315, | |||||
| GT_SAMPLER1DSHADOW = 316, | |||||
| GT_SAMPLER1DARRAY = 317, | |||||
| GT_SAMPLER1DARRAYSHADOW = 318, | |||||
| GT_SAMPLER2DSHADOW = 319, | |||||
| GT_SAMPLER2DARRAY = 320, | |||||
| GT_SAMPLER2DARRAYSHADOW = 321, | |||||
| GT_SAMPLER2DRECT = 322, | |||||
| GT_SAMPLER2DRECTSHADOW = 323, | |||||
| GT_SAMPLER2DMS = 324, | |||||
| GT_SAMPLER2DMSARRAY = 325, | |||||
| GT_SAMPLERCUBESHADOW = 326, | |||||
| GT_SAMPLERCUBEARRAY = 327, | |||||
| GT_SAMPLERCUBEARRAYSHADOW = 328, | |||||
| GT_SAMPLERBUFFER = 329, | |||||
| GT_ISAMPLER1D = 330, | |||||
| GT_ISAMPLER1DARRAY = 331, | |||||
| GT_ISAMPLER2D = 332, | |||||
| GT_ISAMPLER2DARRAY = 333, | |||||
| GT_ISAMPLER2DRECT = 334, | |||||
| GT_ISAMPLER2DMS = 335, | |||||
| GT_ISAMPLER2DMSARRAY = 336, | |||||
| GT_ISAMPLER3D = 337, | |||||
| GT_ISAMPLERCUBE = 338, | |||||
| GT_ISAMPLERCUBEARRAY = 339, | |||||
| GT_ISAMPLERBUFFER = 340, | |||||
| GT_USAMPLER1D = 341, | |||||
| GT_USAMPLER1DARRAY = 342, | |||||
| GT_USAMPLER2D = 343, | |||||
| GT_USAMPLER2DARRAY = 344, | |||||
| GT_USAMPLER2DRECT = 345, | |||||
| GT_USAMPLER2DMS = 346, | |||||
| GT_USAMPLER2DMSARRAY = 347, | |||||
| GT_USAMPLER3D = 348, | |||||
| GT_USAMPLERCUBE = 349, | |||||
| GT_USAMPLERCUBEARRAY = 350, | |||||
| GT_USAMPLERBUFFER = 351, | |||||
| GHT_BOOL = 352, | |||||
| GHT_BREAK = 353, | |||||
| GHT_CASE = 354, | |||||
| GHT_CENTROID = 355, | |||||
| GHT_CONST = 356, | |||||
| GHT_CONTINUE = 357, | |||||
| GHT_DEFAULT = 358, | |||||
| GHT_DISCARD = 359, | |||||
| GHT_DO = 360, | |||||
| GHT_DOUBLE = 361, | |||||
| GHT_ELSE = 362, | |||||
| GHT_FLOAT = 363, | |||||
| GHT_FOR = 364, | |||||
| GHT_IF = 365, | |||||
| GHT_IN = 366, | |||||
| GHT_INOUT = 367, | |||||
| GHT_INT = 368, | |||||
| GHT_NOPERSPECTIVE = 369, | |||||
| GHT_OUT = 370, | |||||
| GHT_RETURN = 371, | |||||
| GHT_SAMPLER1D = 372, | |||||
| GHT_SAMPLER2D = 373, | |||||
| GHT_SAMPLER3D = 374, | |||||
| GHT_SAMPLERCUBE = 375, | |||||
| GHT_STRUCT = 376, | |||||
| GHT_SWITCH = 377, | |||||
| GHT_UINT = 378, | |||||
| GHT_UNIFORM = 379, | |||||
| GHT_VOID = 380, | |||||
| GHT_WHILE = 381, | |||||
| HGT_BOOL = 382, | |||||
| HGT_BREAK = 383, | |||||
| HGT_CASE = 384, | |||||
| HGT_CENTROID = 385, | |||||
| HGT_CONST = 386, | |||||
| HGT_CONTINUE = 387, | |||||
| HGT_DEFAULT = 388, | |||||
| HGT_DISCARD = 389, | |||||
| HGT_DO = 390, | |||||
| HGT_DOUBLE = 391, | |||||
| HGT_ELSE = 392, | |||||
| HGT_FLOAT = 393, | |||||
| HGT_FOR = 394, | |||||
| HGT_IF = 395, | |||||
| HGT_IN = 396, | |||||
| HGT_INOUT = 397, | |||||
| HGT_INT = 398, | |||||
| HGT_NOPERSPECTIVE = 399, | |||||
| HGT_OUT = 400, | |||||
| HGT_RETURN = 401, | |||||
| HGT_SAMPLER1D = 402, | |||||
| HGT_SAMPLER2D = 403, | |||||
| HGT_SAMPLER3D = 404, | |||||
| HGT_SAMPLERCUBE = 405, | |||||
| HGT_STRUCT = 406, | |||||
| HGT_SWITCH = 407, | |||||
| HGT_UINT = 408, | |||||
| HGT_UNIFORM = 409, | |||||
| HGT_VOID = 410, | |||||
| HGT_WHILE = 411, | |||||
| HT_APPENDSTRUCTUREDBUFFER = 412, | |||||
| HT_ASM = 413, | |||||
| HT_ASM_FRAGMENT = 414, | |||||
| HT_BLENDSTATE = 415, | |||||
| HT_BUFFER = 416, | |||||
| HT_BYTEADDRESSBUFFER = 417, | |||||
| HT_CBUFFER = 418, | |||||
| HT_COLUMN_MAJOR = 419, | |||||
| HT_COMPILE = 420, | |||||
| HT_COMPILE_FRAGMENT = 421, | |||||
| HT_COMPILESHADER = 422, | |||||
| HT_COMPUTESHADER = 423, | |||||
| HT_CONSUMESTRUCTUREDBUFFER = 424, | |||||
| HT_DEPTHSTENCILSTATE = 425, | |||||
| HT_DEPTHSTENCILVIEW = 426, | |||||
| HT_DOMAINSHADER = 427, | |||||
| HT_DWORD = 428, | |||||
| HT_EXTERN = 429, | |||||
| HT_FALSE = 430, | |||||
| HT_FXGROUP = 431, | |||||
| HT_GEOMETRYSHADER = 432, | |||||
| HT_GROUPSHARED = 433, | |||||
| HT_HALF = 434, | |||||
| HT_HULLSHADER = 435, | |||||
| HT_INLINE = 436, | |||||
| HT_INPUTPATCH = 437, | |||||
| HT_INTERFACE = 438, | |||||
| HT_LINE = 439, | |||||
| HT_LINEADJ = 440, | |||||
| HT_LINEAR = 441, | |||||
| HT_LINESTREAM = 442, | |||||
| HT_MATRIX = 443, | |||||
| HT_NAMESPACE = 444, | |||||
| HT_NOINTERPOLATION = 445, | |||||
| HT_NULL = 446, | |||||
| HT_OUTPUTPATCH = 447, | |||||
| HT_PACKOFFSET = 448, | |||||
| HT_PASS = 449, | |||||
| HT_PIXELFRAGMENT = 450, | |||||
| HT_PIXELSHADER = 451, | |||||
| HT_POINT = 452, | |||||
| HT_POINTSTREAM = 453, | |||||
| HT_PRECISE = 454, | |||||
| HT_RASTERIZERSTATE = 455, | |||||
| HT_RENDERTARGETVIEW = 456, | |||||
| HT_REGISTER = 457, | |||||
| HT_ROW_MAJOR = 458, | |||||
| HT_RWBUFFER = 459, | |||||
| HT_RWBYTEADDRESSBUFFER = 460, | |||||
| HT_RWSTRUCTUREDBUFFER = 461, | |||||
| HT_RWTEXTURE1D = 462, | |||||
| HT_RWTEXTURE1DARRAY = 463, | |||||
| HT_RWTEXTURE2D = 464, | |||||
| HT_RWTEXTURE2DARRAY = 465, | |||||
| HT_RWTEXTURE3D = 466, | |||||
| HT_SAMPLER = 467, | |||||
| HT_SAMPLER_STATE = 468, | |||||
| HT_SAMPLERSTATE = 469, | |||||
| HT_SAMPLERCOMPARISONSTATE = 470, | |||||
| HT_SHARED = 471, | |||||
| HT_SNORM = 472, | |||||
| HT_STATEBLOCK = 473, | |||||
| HT_STATEBLOCK_STATE = 474, | |||||
| HT_STATIC = 475, | |||||
| HT_STRING = 476, | |||||
| HT_STRUCTUREDBUFFER = 477, | |||||
| HT_TBUFFER = 478, | |||||
| HT_TECHNIQUE = 479, | |||||
| HT_TECHNIQUE10 = 480, | |||||
| HT_TECHNIQUE11XZ = 481, | |||||
| HT_TEXTURE = 482, | |||||
| HT_TEXTURE1D = 483, | |||||
| HT_TEXTURE1DARRAY = 484, | |||||
| HT_TEXTURE2D = 485, | |||||
| HT_TEXTURE2DARRAY = 486, | |||||
| HT_TEXTURE2DMS = 487, | |||||
| HT_TEXTURE2DMSARRAY = 488, | |||||
| HT_TEXTURE3D = 489, | |||||
| HT_TEXTURECUBE = 490, | |||||
| HT_TEXTURECUBEARRAY = 491, | |||||
| HT_TRUE = 492, | |||||
| HT_TYPEDEF = 493, | |||||
| HT_TRIANGLE = 494, | |||||
| HT_TRIANGLEADJ = 495, | |||||
| HT_TRIANGLESTREAM = 496, | |||||
| HT_UNORM = 497, | |||||
| HT_VECTOR = 498, | |||||
| HT_VERTEXFRAGMENT = 499, | |||||
| HT_VERTEXSHADER = 500, | |||||
| HT_VOLATILE = 501, | |||||
| HT_BOOL1 = 502, | |||||
| HT_BOOL1x1 = 503, | |||||
| HT_BOOL2x1 = 504, | |||||
| HT_BOOL3x1 = 505, | |||||
| HT_BOOL4x1 = 506, | |||||
| HT_BOOL2 = 507, | |||||
| HT_BOOL1x2 = 508, | |||||
| HT_BOOL2x2 = 509, | |||||
| HT_BOOL3x2 = 510, | |||||
| HT_BOOL4x2 = 511, | |||||
| HT_BOOL3 = 512, | |||||
| HT_BOOL1x3 = 513, | |||||
| HT_BOOL2x3 = 514, | |||||
| HT_BOOL3x3 = 515, | |||||
| HT_BOOL4x3 = 516, | |||||
| HT_BOOL4 = 517, | |||||
| HT_BOOL1x4 = 518, | |||||
| HT_BOOL2x4 = 519, | |||||
| HT_BOOL3x4 = 520, | |||||
| HT_BOOL4x4 = 521, | |||||
| HT_FLOAT1 = 522, | |||||
| HT_FLOAT1x1 = 523, | |||||
| HT_FLOAT2x1 = 524, | |||||
| HT_FLOAT3x1 = 525, | |||||
| HT_FLOAT4x1 = 526, | |||||
| HT_FLOAT2 = 527, | |||||
| HT_FLOAT1x2 = 528, | |||||
| HT_FLOAT2x2 = 529, | |||||
| HT_FLOAT3x2 = 530, | |||||
| HT_FLOAT4x2 = 531, | |||||
| HT_FLOAT3 = 532, | |||||
| HT_FLOAT1x3 = 533, | |||||
| HT_FLOAT2x3 = 534, | |||||
| HT_FLOAT3x3 = 535, | |||||
| HT_FLOAT4x3 = 536, | |||||
| HT_FLOAT4 = 537, | |||||
| HT_FLOAT1x4 = 538, | |||||
| HT_FLOAT2x4 = 539, | |||||
| HT_FLOAT3x4 = 540, | |||||
| HT_FLOAT4x4 = 541, | |||||
| HT_DOUBLE1 = 542, | |||||
| HT_DOUBLE1x1 = 543, | |||||
| HT_DOUBLE2x1 = 544, | |||||
| HT_DOUBLE3x1 = 545, | |||||
| HT_DOUBLE4x1 = 546, | |||||
| HT_DOUBLE2 = 547, | |||||
| HT_DOUBLE1x2 = 548, | |||||
| HT_DOUBLE2x2 = 549, | |||||
| HT_DOUBLE3x2 = 550, | |||||
| HT_DOUBLE4x2 = 551, | |||||
| HT_DOUBLE3 = 552, | |||||
| HT_DOUBLE1x3 = 553, | |||||
| HT_DOUBLE2x3 = 554, | |||||
| HT_DOUBLE3x3 = 555, | |||||
| HT_DOUBLE4x3 = 556, | |||||
| HT_DOUBLE4 = 557, | |||||
| HT_DOUBLE1x4 = 558, | |||||
| HT_DOUBLE2x4 = 559, | |||||
| HT_DOUBLE3x4 = 560, | |||||
| HT_DOUBLE4x4 = 561, | |||||
| HT_DWORD1 = 562, | |||||
| HT_DWORD1x1 = 563, | |||||
| HT_DWORD2x1 = 564, | |||||
| HT_DWORD3x1 = 565, | |||||
| HT_DWORD4x1 = 566, | |||||
| HT_DWORD2 = 567, | |||||
| HT_DWORD1x2 = 568, | |||||
| HT_DWORD2x2 = 569, | |||||
| HT_DWORD3x2 = 570, | |||||
| HT_DWORD4x2 = 571, | |||||
| HT_DWORD3 = 572, | |||||
| HT_DWORD1x3 = 573, | |||||
| HT_DWORD2x3 = 574, | |||||
| HT_DWORD3x3 = 575, | |||||
| HT_DWORD4x3 = 576, | |||||
| HT_DWORD4 = 577, | |||||
| HT_DWORD1x4 = 578, | |||||
| HT_DWORD2x4 = 579, | |||||
| HT_DWORD3x4 = 580, | |||||
| HT_DWORD4x4 = 581, | |||||
| HT_INT1 = 582, | |||||
| HT_INT1x1 = 583, | |||||
| HT_INT2x1 = 584, | |||||
| HT_INT3x1 = 585, | |||||
| HT_INT4x1 = 586, | |||||
| HT_INT2 = 587, | |||||
| HT_INT1x2 = 588, | |||||
| HT_INT2x2 = 589, | |||||
| HT_INT3x2 = 590, | |||||
| HT_INT4x2 = 591, | |||||
| HT_INT3 = 592, | |||||
| HT_INT1x3 = 593, | |||||
| HT_INT2x3 = 594, | |||||
| HT_INT3x3 = 595, | |||||
| HT_INT4x3 = 596, | |||||
| HT_INT4 = 597, | |||||
| HT_INT1x4 = 598, | |||||
| HT_INT2x4 = 599, | |||||
| HT_INT3x4 = 600, | |||||
| HT_INT4x4 = 601, | |||||
| HT_UINT1 = 602, | |||||
| HT_UINT1x1 = 603, | |||||
| HT_UINT2x1 = 604, | |||||
| HT_UINT3x1 = 605, | |||||
| HT_UINT4x1 = 606, | |||||
| HT_UINT2 = 607, | |||||
| HT_UINT1x2 = 608, | |||||
| HT_UINT2x2 = 609, | |||||
| HT_UINT3x2 = 610, | |||||
| HT_UINT4x2 = 611, | |||||
| HT_UINT3 = 612, | |||||
| HT_UINT1x3 = 613, | |||||
| HT_UINT2x3 = 614, | |||||
| HT_UINT3x3 = 615, | |||||
| HT_UINT4x3 = 616, | |||||
| HT_UINT4 = 617, | |||||
| HT_UINT1x4 = 618, | |||||
| HT_UINT2x4 = 619, | |||||
| HT_UINT3x4 = 620, | |||||
| HT_UINT4x4 = 621, | |||||
| PREPROCESSOR_DEFINE = 622, | |||||
| PREPROCESSOR_ELIF = 623, | |||||
| PREPROCESSOR_ELSE = 624, | |||||
| PREPROCESSOR_ENDIF = 625, | |||||
| PREPROCESSOR_ERROR = 626, | |||||
| PREPROCESSOR_IF = 627, | |||||
| PREPROCESSOR_IFDEF = 628, | |||||
| PREPROCESSOR_IFNDEF = 629, | |||||
| PREPROCESSOR_INCLUDE = 630, | |||||
| PREPROCESSOR_LINE = 631, | |||||
| PREPROCESSOR_PRAGMA = 632, | |||||
| PREPROCESSOR_UNDEF = 633, | |||||
| PREPROCESSOR_REGION = 634, | |||||
| PRAGMA_LOLFX = 635, | |||||
| GT_VARYING = 277, | |||||
| GT_VEC2 = 278, | |||||
| GT_VEC3 = 279, | |||||
| GT_VEC4 = 280, | |||||
| GT_BVEC2 = 281, | |||||
| GT_BVEC3 = 282, | |||||
| GT_BVEC4 = 283, | |||||
| GT_DVEC2 = 284, | |||||
| GT_DVEC3 = 285, | |||||
| GT_DVEC4 = 286, | |||||
| GT_IVEC2 = 287, | |||||
| GT_IVEC3 = 288, | |||||
| GT_IVEC4 = 289, | |||||
| GT_UVEC2 = 290, | |||||
| GT_UVEC3 = 291, | |||||
| GT_UVEC4 = 292, | |||||
| GT_MAT2 = 293, | |||||
| GT_MAT2X2 = 294, | |||||
| GT_MAT2X3 = 295, | |||||
| GT_MAT2X4 = 296, | |||||
| GT_MAT3 = 297, | |||||
| GT_MAT3X2 = 298, | |||||
| GT_MAT3X3 = 299, | |||||
| GT_MAT3X4 = 300, | |||||
| GT_MAT4 = 301, | |||||
| GT_MAT4X2 = 302, | |||||
| GT_MAT4X3 = 303, | |||||
| GT_MAT4X4 = 304, | |||||
| GT_DMAT2 = 305, | |||||
| GT_DMAT2X2 = 306, | |||||
| GT_DMAT2X3 = 307, | |||||
| GT_DMAT2X4 = 308, | |||||
| GT_DMAT3 = 309, | |||||
| GT_DMAT3X2 = 310, | |||||
| GT_DMAT3X3 = 311, | |||||
| GT_DMAT3X4 = 312, | |||||
| GT_DMAT4 = 313, | |||||
| GT_DMAT4X2 = 314, | |||||
| GT_DMAT4X3 = 315, | |||||
| GT_DMAT4X4 = 316, | |||||
| GT_SAMPLER1DSHADOW = 317, | |||||
| GT_SAMPLER1DARRAY = 318, | |||||
| GT_SAMPLER1DARRAYSHADOW = 319, | |||||
| GT_SAMPLER2DSHADOW = 320, | |||||
| GT_SAMPLER2DARRAY = 321, | |||||
| GT_SAMPLER2DARRAYSHADOW = 322, | |||||
| GT_SAMPLER2DRECT = 323, | |||||
| GT_SAMPLER2DRECTSHADOW = 324, | |||||
| GT_SAMPLER2DMS = 325, | |||||
| GT_SAMPLER2DMSARRAY = 326, | |||||
| GT_SAMPLERCUBESHADOW = 327, | |||||
| GT_SAMPLERCUBEARRAY = 328, | |||||
| GT_SAMPLERCUBEARRAYSHADOW = 329, | |||||
| GT_SAMPLERBUFFER = 330, | |||||
| GT_ISAMPLER1D = 331, | |||||
| GT_ISAMPLER1DARRAY = 332, | |||||
| GT_ISAMPLER2D = 333, | |||||
| GT_ISAMPLER2DARRAY = 334, | |||||
| GT_ISAMPLER2DRECT = 335, | |||||
| GT_ISAMPLER2DMS = 336, | |||||
| GT_ISAMPLER2DMSARRAY = 337, | |||||
| GT_ISAMPLER3D = 338, | |||||
| GT_ISAMPLERCUBE = 339, | |||||
| GT_ISAMPLERCUBEARRAY = 340, | |||||
| GT_ISAMPLERBUFFER = 341, | |||||
| GT_USAMPLER1D = 342, | |||||
| GT_USAMPLER1DARRAY = 343, | |||||
| GT_USAMPLER2D = 344, | |||||
| GT_USAMPLER2DARRAY = 345, | |||||
| GT_USAMPLER2DRECT = 346, | |||||
| GT_USAMPLER2DMS = 347, | |||||
| GT_USAMPLER2DMSARRAY = 348, | |||||
| GT_USAMPLER3D = 349, | |||||
| GT_USAMPLERCUBE = 350, | |||||
| GT_USAMPLERCUBEARRAY = 351, | |||||
| GT_USAMPLERBUFFER = 352, | |||||
| GHT_BOOL = 353, | |||||
| GHT_BREAK = 354, | |||||
| GHT_CASE = 355, | |||||
| GHT_CENTROID = 356, | |||||
| GHT_CONST = 357, | |||||
| GHT_CONTINUE = 358, | |||||
| GHT_DEFAULT = 359, | |||||
| GHT_DISCARD = 360, | |||||
| GHT_DO = 361, | |||||
| GHT_DOUBLE = 362, | |||||
| GHT_ELSE = 363, | |||||
| GHT_FLOAT = 364, | |||||
| GHT_FOR = 365, | |||||
| GHT_IF = 366, | |||||
| GHT_IN = 367, | |||||
| GHT_INOUT = 368, | |||||
| GHT_INT = 369, | |||||
| GHT_NOPERSPECTIVE = 370, | |||||
| GHT_OUT = 371, | |||||
| GHT_RETURN = 372, | |||||
| GHT_SAMPLER1D = 373, | |||||
| GHT_SAMPLER2D = 374, | |||||
| GHT_SAMPLER3D = 375, | |||||
| GHT_SAMPLERCUBE = 376, | |||||
| GHT_STRUCT = 377, | |||||
| GHT_SWITCH = 378, | |||||
| GHT_UINT = 379, | |||||
| GHT_UNIFORM = 380, | |||||
| GHT_VOID = 381, | |||||
| GHT_WHILE = 382, | |||||
| HGT_BOOL = 383, | |||||
| HGT_BREAK = 384, | |||||
| HGT_CASE = 385, | |||||
| HGT_CENTROID = 386, | |||||
| HGT_CONST = 387, | |||||
| HGT_CONTINUE = 388, | |||||
| HGT_DEFAULT = 389, | |||||
| HGT_DISCARD = 390, | |||||
| HGT_DO = 391, | |||||
| HGT_DOUBLE = 392, | |||||
| HGT_ELSE = 393, | |||||
| HGT_FLOAT = 394, | |||||
| HGT_FOR = 395, | |||||
| HGT_IF = 396, | |||||
| HGT_IN = 397, | |||||
| HGT_INOUT = 398, | |||||
| HGT_INT = 399, | |||||
| HGT_NOPERSPECTIVE = 400, | |||||
| HGT_OUT = 401, | |||||
| HGT_RETURN = 402, | |||||
| HGT_SAMPLER1D = 403, | |||||
| HGT_SAMPLER2D = 404, | |||||
| HGT_SAMPLER3D = 405, | |||||
| HGT_SAMPLERCUBE = 406, | |||||
| HGT_STRUCT = 407, | |||||
| HGT_SWITCH = 408, | |||||
| HGT_UINT = 409, | |||||
| HGT_UNIFORM = 410, | |||||
| HGT_VOID = 411, | |||||
| HGT_WHILE = 412, | |||||
| HT_APPENDSTRUCTUREDBUFFER = 413, | |||||
| HT_ASM = 414, | |||||
| HT_ASM_FRAGMENT = 415, | |||||
| HT_BLENDSTATE = 416, | |||||
| HT_BUFFER = 417, | |||||
| HT_BYTEADDRESSBUFFER = 418, | |||||
| HT_CBUFFER = 419, | |||||
| HT_COLUMN_MAJOR = 420, | |||||
| HT_COMPILE = 421, | |||||
| HT_COMPILE_FRAGMENT = 422, | |||||
| HT_COMPILESHADER = 423, | |||||
| HT_COMPUTESHADER = 424, | |||||
| HT_CONSUMESTRUCTUREDBUFFER = 425, | |||||
| HT_DEPTHSTENCILSTATE = 426, | |||||
| HT_DEPTHSTENCILVIEW = 427, | |||||
| HT_DOMAINSHADER = 428, | |||||
| HT_DWORD = 429, | |||||
| HT_EXTERN = 430, | |||||
| HT_FALSE = 431, | |||||
| HT_FXGROUP = 432, | |||||
| HT_GEOMETRYSHADER = 433, | |||||
| HT_GROUPSHARED = 434, | |||||
| HT_HALF = 435, | |||||
| HT_HULLSHADER = 436, | |||||
| HT_INLINE = 437, | |||||
| HT_INPUTPATCH = 438, | |||||
| HT_INTERFACE = 439, | |||||
| HT_LINE = 440, | |||||
| HT_LINEADJ = 441, | |||||
| HT_LINEAR = 442, | |||||
| HT_LINESTREAM = 443, | |||||
| HT_MATRIX = 444, | |||||
| HT_NAMESPACE = 445, | |||||
| HT_NOINTERPOLATION = 446, | |||||
| HT_NULL = 447, | |||||
| HT_OUTPUTPATCH = 448, | |||||
| HT_PACKOFFSET = 449, | |||||
| HT_PASS = 450, | |||||
| HT_PIXELFRAGMENT = 451, | |||||
| HT_PIXELSHADER = 452, | |||||
| HT_POINT = 453, | |||||
| HT_POINTSTREAM = 454, | |||||
| HT_PRECISE = 455, | |||||
| HT_RASTERIZERSTATE = 456, | |||||
| HT_RENDERTARGETVIEW = 457, | |||||
| HT_REGISTER = 458, | |||||
| HT_ROW_MAJOR = 459, | |||||
| HT_RWBUFFER = 460, | |||||
| HT_RWBYTEADDRESSBUFFER = 461, | |||||
| HT_RWSTRUCTUREDBUFFER = 462, | |||||
| HT_RWTEXTURE1D = 463, | |||||
| HT_RWTEXTURE1DARRAY = 464, | |||||
| HT_RWTEXTURE2D = 465, | |||||
| HT_RWTEXTURE2DARRAY = 466, | |||||
| HT_RWTEXTURE3D = 467, | |||||
| HT_SAMPLER = 468, | |||||
| HT_SAMPLER_STATE = 469, | |||||
| HT_SAMPLERSTATE = 470, | |||||
| HT_SAMPLERCOMPARISONSTATE = 471, | |||||
| HT_SHARED = 472, | |||||
| HT_SNORM = 473, | |||||
| HT_STATEBLOCK = 474, | |||||
| HT_STATEBLOCK_STATE = 475, | |||||
| HT_STATIC = 476, | |||||
| HT_STRING = 477, | |||||
| HT_STRUCTUREDBUFFER = 478, | |||||
| HT_TBUFFER = 479, | |||||
| HT_TECHNIQUE = 480, | |||||
| HT_TECHNIQUE10 = 481, | |||||
| HT_TECHNIQUE11XZ = 482, | |||||
| HT_TEXTURE = 483, | |||||
| HT_TEXTURE1D = 484, | |||||
| HT_TEXTURE1DARRAY = 485, | |||||
| HT_TEXTURE2D = 486, | |||||
| HT_TEXTURE2DARRAY = 487, | |||||
| HT_TEXTURE2DMS = 488, | |||||
| HT_TEXTURE2DMSARRAY = 489, | |||||
| HT_TEXTURE3D = 490, | |||||
| HT_TEXTURECUBE = 491, | |||||
| HT_TEXTURECUBEARRAY = 492, | |||||
| HT_TRUE = 493, | |||||
| HT_TYPEDEF = 494, | |||||
| HT_TRIANGLE = 495, | |||||
| HT_TRIANGLEADJ = 496, | |||||
| HT_TRIANGLESTREAM = 497, | |||||
| HT_UNORM = 498, | |||||
| HT_VECTOR = 499, | |||||
| HT_VERTEXFRAGMENT = 500, | |||||
| HT_VERTEXSHADER = 501, | |||||
| HT_VOLATILE = 502, | |||||
| HT_BOOL1 = 503, | |||||
| HT_BOOL1x1 = 504, | |||||
| HT_BOOL2x1 = 505, | |||||
| HT_BOOL3x1 = 506, | |||||
| HT_BOOL4x1 = 507, | |||||
| HT_BOOL2 = 508, | |||||
| HT_BOOL1x2 = 509, | |||||
| HT_BOOL2x2 = 510, | |||||
| HT_BOOL3x2 = 511, | |||||
| HT_BOOL4x2 = 512, | |||||
| HT_BOOL3 = 513, | |||||
| HT_BOOL1x3 = 514, | |||||
| HT_BOOL2x3 = 515, | |||||
| HT_BOOL3x3 = 516, | |||||
| HT_BOOL4x3 = 517, | |||||
| HT_BOOL4 = 518, | |||||
| HT_BOOL1x4 = 519, | |||||
| HT_BOOL2x4 = 520, | |||||
| HT_BOOL3x4 = 521, | |||||
| HT_BOOL4x4 = 522, | |||||
| HT_FLOAT1 = 523, | |||||
| HT_FLOAT1x1 = 524, | |||||
| HT_FLOAT2x1 = 525, | |||||
| HT_FLOAT3x1 = 526, | |||||
| HT_FLOAT4x1 = 527, | |||||
| HT_FLOAT2 = 528, | |||||
| HT_FLOAT1x2 = 529, | |||||
| HT_FLOAT2x2 = 530, | |||||
| HT_FLOAT3x2 = 531, | |||||
| HT_FLOAT4x2 = 532, | |||||
| HT_FLOAT3 = 533, | |||||
| HT_FLOAT1x3 = 534, | |||||
| HT_FLOAT2x3 = 535, | |||||
| HT_FLOAT3x3 = 536, | |||||
| HT_FLOAT4x3 = 537, | |||||
| HT_FLOAT4 = 538, | |||||
| HT_FLOAT1x4 = 539, | |||||
| HT_FLOAT2x4 = 540, | |||||
| HT_FLOAT3x4 = 541, | |||||
| HT_FLOAT4x4 = 542, | |||||
| HT_DOUBLE1 = 543, | |||||
| HT_DOUBLE1x1 = 544, | |||||
| HT_DOUBLE2x1 = 545, | |||||
| HT_DOUBLE3x1 = 546, | |||||
| HT_DOUBLE4x1 = 547, | |||||
| HT_DOUBLE2 = 548, | |||||
| HT_DOUBLE1x2 = 549, | |||||
| HT_DOUBLE2x2 = 550, | |||||
| HT_DOUBLE3x2 = 551, | |||||
| HT_DOUBLE4x2 = 552, | |||||
| HT_DOUBLE3 = 553, | |||||
| HT_DOUBLE1x3 = 554, | |||||
| HT_DOUBLE2x3 = 555, | |||||
| HT_DOUBLE3x3 = 556, | |||||
| HT_DOUBLE4x3 = 557, | |||||
| HT_DOUBLE4 = 558, | |||||
| HT_DOUBLE1x4 = 559, | |||||
| HT_DOUBLE2x4 = 560, | |||||
| HT_DOUBLE3x4 = 561, | |||||
| HT_DOUBLE4x4 = 562, | |||||
| HT_DWORD1 = 563, | |||||
| HT_DWORD1x1 = 564, | |||||
| HT_DWORD2x1 = 565, | |||||
| HT_DWORD3x1 = 566, | |||||
| HT_DWORD4x1 = 567, | |||||
| HT_DWORD2 = 568, | |||||
| HT_DWORD1x2 = 569, | |||||
| HT_DWORD2x2 = 570, | |||||
| HT_DWORD3x2 = 571, | |||||
| HT_DWORD4x2 = 572, | |||||
| HT_DWORD3 = 573, | |||||
| HT_DWORD1x3 = 574, | |||||
| HT_DWORD2x3 = 575, | |||||
| HT_DWORD3x3 = 576, | |||||
| HT_DWORD4x3 = 577, | |||||
| HT_DWORD4 = 578, | |||||
| HT_DWORD1x4 = 579, | |||||
| HT_DWORD2x4 = 580, | |||||
| HT_DWORD3x4 = 581, | |||||
| HT_DWORD4x4 = 582, | |||||
| HT_INT1 = 583, | |||||
| HT_INT1x1 = 584, | |||||
| HT_INT2x1 = 585, | |||||
| HT_INT3x1 = 586, | |||||
| HT_INT4x1 = 587, | |||||
| HT_INT2 = 588, | |||||
| HT_INT1x2 = 589, | |||||
| HT_INT2x2 = 590, | |||||
| HT_INT3x2 = 591, | |||||
| HT_INT4x2 = 592, | |||||
| HT_INT3 = 593, | |||||
| HT_INT1x3 = 594, | |||||
| HT_INT2x3 = 595, | |||||
| HT_INT3x3 = 596, | |||||
| HT_INT4x3 = 597, | |||||
| HT_INT4 = 598, | |||||
| HT_INT1x4 = 599, | |||||
| HT_INT2x4 = 600, | |||||
| HT_INT3x4 = 601, | |||||
| HT_INT4x4 = 602, | |||||
| HT_UINT1 = 603, | |||||
| HT_UINT1x1 = 604, | |||||
| HT_UINT2x1 = 605, | |||||
| HT_UINT3x1 = 606, | |||||
| HT_UINT4x1 = 607, | |||||
| HT_UINT2 = 608, | |||||
| HT_UINT1x2 = 609, | |||||
| HT_UINT2x2 = 610, | |||||
| HT_UINT3x2 = 611, | |||||
| HT_UINT4x2 = 612, | |||||
| HT_UINT3 = 613, | |||||
| HT_UINT1x3 = 614, | |||||
| HT_UINT2x3 = 615, | |||||
| HT_UINT3x3 = 616, | |||||
| HT_UINT4x3 = 617, | |||||
| HT_UINT4 = 618, | |||||
| HT_UINT1x4 = 619, | |||||
| HT_UINT2x4 = 620, | |||||
| HT_UINT3x4 = 621, | |||||
| HT_UINT4x4 = 622, | |||||
| PREPROCESSOR_DEFINE = 623, | |||||
| PREPROCESSOR_ELIF = 624, | |||||
| PREPROCESSOR_ELSE = 625, | |||||
| PREPROCESSOR_ENDIF = 626, | |||||
| PREPROCESSOR_ERROR = 627, | |||||
| PREPROCESSOR_IF = 628, | |||||
| PREPROCESSOR_IFDEF = 629, | |||||
| PREPROCESSOR_IFNDEF = 630, | |||||
| PREPROCESSOR_INCLUDE = 631, | |||||
| PREPROCESSOR_LINE = 632, | |||||
| PREPROCESSOR_PRAGMA = 633, | |||||
| PREPROCESSOR_UNDEF = 634, | |||||
| PREPROCESSOR_REGION = 635, | |||||
| HT_AUTO = 636, | HT_AUTO = 636, | ||||
| HT_CATCH = 637, | HT_CATCH = 637, | ||||
| HT_CHAR = 638, | HT_CHAR = 638, | ||||
| @@ -37,13 +37,13 @@ bool LolFxCompiler::ParseString(char const *command) | |||||
| void LolFxCompiler::Error(const class location& l, const std::string& m) | void LolFxCompiler::Error(const class location& l, const std::string& m) | ||||
| { | { | ||||
| Log::Error("Syntax error line %d column %d: %s", | |||||
| Log::Error("LolFx syntax error line %d column %d: %s\n", | |||||
| l.begin.line, l.begin.column, m.c_str()); | l.begin.line, l.begin.column, m.c_str()); | ||||
| } | } | ||||
| void LolFxCompiler::Error(const std::string& m) | void LolFxCompiler::Error(const std::string& m) | ||||
| { | { | ||||
| Log::Error("Syntax error: %s", m.c_str()); | |||||
| Log::Error("LolFx syntax error: %s\n", m.c_str()); | |||||
| } | } | ||||
| } /* namespace lol */ | } /* namespace lol */ | ||||
| @@ -48,7 +48,7 @@ | |||||
| %token <ival> INTCONSTANT | %token <ival> INTCONSTANT | ||||
| %token <uval> UINTCONSTANT | %token <uval> UINTCONSTANT | ||||
| %token <fval> FLOATCONSTANT | %token <fval> FLOATCONSTANT | ||||
| %token /* TODO */ FIELDSELECTION | |||||
| %token <sval> FIELDSELECTION | |||||
| %token <sval> IDENTIFIER | %token <sval> IDENTIFIER | ||||
| %token <sval> TYPENAME | %token <sval> TYPENAME | ||||
| @@ -64,7 +64,7 @@ | |||||
| * Deprecated GLSL keywords | * Deprecated GLSL keywords | ||||
| */ | */ | ||||
| %token GT_ATTRIBUTE | |||||
| %token GT_ATTRIBUTE GT_VARYING | |||||
| /* | /* | ||||
| * GLSL types | * GLSL types | ||||
| @@ -199,8 +199,6 @@ | |||||
| %token PREPROCESSOR_LINE PREPROCESSOR_PRAGMA PREPROCESSOR_UNDEF | %token PREPROCESSOR_LINE PREPROCESSOR_PRAGMA PREPROCESSOR_UNDEF | ||||
| %token PREPROCESSOR_REGION | %token PREPROCESSOR_REGION | ||||
| %token PRAGMA_LOLFX | |||||
| /* | /* | ||||
| * HLSL reserved keywords | * HLSL reserved keywords | ||||
| */ | */ | ||||
| @@ -265,7 +263,8 @@ group_glsl_keyword: | |||||
| | GT_MEDIUMP | | GT_MEDIUMP | ||||
| | GT_LOWP | | GT_LOWP | ||||
| | GT_PRECISION | | GT_PRECISION | ||||
| | GT_ATTRIBUTE | |||||
| | GT_ATTRIBUTE /* deprecated */ | |||||
| | GT_VARYING /* deprecated */ | |||||
| ; | ; | ||||
| group_glsl_type: | group_glsl_type: | ||||
| @@ -726,7 +725,16 @@ lolfx_section: | |||||
| */ | */ | ||||
| lolfx_technique: | lolfx_technique: | ||||
| HT_TECHNIQUE IDENTIFIER '{' pass_list '}' { std::cout << "New tech " << $2 << std::endl; } | |||||
| HT_TECHNIQUE lolfx_identifier '{' pass_list '}' { std::cout << "New tech " << std::endl; } | |||||
| ; | |||||
| /* | |||||
| * The valid LolFx identifiers | |||||
| */ | |||||
| lolfx_identifier: | |||||
| IDENTIFIER { std::cout << "New name " << $1 << std::endl; } | |||||
| | FIELDSELECTION { std::cout << "New name " << $1 << std::endl; } | |||||
| ; | ; | ||||
| /* | /* | ||||
| @@ -739,7 +747,7 @@ pass_list: | |||||
| ; | ; | ||||
| pass: | pass: | ||||
| HT_PASS IDENTIFIER '{' pass_stmt_list '}' { std::cout << "New pass " << $2 << std::endl; } | |||||
| HT_PASS lolfx_identifier '{' pass_stmt_list '}' { std::cout << "New pass " << std::endl; } | |||||
| ; | ; | ||||
| pass_stmt_list: | pass_stmt_list: | ||||
| @@ -775,22 +783,16 @@ lolfx_shader: | |||||
| ; | ; | ||||
| lolfx_shader_declaration: | lolfx_shader_declaration: | ||||
| PRAGMA_LOLFX lolfx_shader_type '(' lolfx_shader_description_list ')' { std::cout << "new shader" << std::endl; } | |||||
| ; | |||||
| lolfx_shader_type: | |||||
| HT_VERTEXSHADER | |||||
| | HT_PIXELSHADER | |||||
| '[' lolfx_shader_name_list ']' { std::cout << "new shader" << std::endl; } | |||||
| ; | ; | ||||
| lolfx_shader_description_list: | |||||
| lolfx_shader_description ',' lolfx_shader_description | |||||
| | lolfx_shader_description | |||||
| lolfx_shader_name_list: | |||||
| lolfx_shader_name '.' lolfx_shader_name_list | |||||
| | lolfx_shader_name | |||||
| ; | ; | ||||
| lolfx_shader_description: | |||||
| IDENTIFIER '=' IDENTIFIER FLOATCONSTANT | |||||
| | IDENTIFIER '=' IDENTIFIER | |||||
| lolfx_shader_name: | |||||
| lolfx_identifier | |||||
| ; | ; | ||||
| /* | /* | ||||
| @@ -971,10 +973,10 @@ glsl_declaration: | |||||
| glsl_function_prototype ';' | glsl_function_prototype ';' | ||||
| | glsl_init_declarator_list ';' | | glsl_init_declarator_list ';' | ||||
| | GT_PRECISION glsl_precision_qualifier glsl_type_specifier_no_prec ';' | | GT_PRECISION glsl_precision_qualifier glsl_type_specifier_no_prec ';' | ||||
| | glsl_type_qualifier IDENTIFIER '{' glsl_struct_declaration_list '}' ';' | |||||
| | glsl_type_qualifier IDENTIFIER '{' glsl_struct_declaration_list '}' IDENTIFIER ';' | |||||
| | glsl_type_qualifier IDENTIFIER '{' glsl_struct_declaration_list '}' IDENTIFIER '[' ']' ';' | |||||
| | glsl_type_qualifier IDENTIFIER '{' glsl_struct_declaration_list '}' IDENTIFIER '[' glsl_constant_expression ']' ';' | |||||
| | glsl_type_qualifier lolfx_identifier '{' glsl_struct_declaration_list '}' ';' | |||||
| | glsl_type_qualifier lolfx_identifier '{' glsl_struct_declaration_list '}' lolfx_identifier ';' | |||||
| | glsl_type_qualifier lolfx_identifier '{' glsl_struct_declaration_list '}' lolfx_identifier '[' ']' ';' | |||||
| | glsl_type_qualifier lolfx_identifier '{' glsl_struct_declaration_list '}' lolfx_identifier '[' glsl_constant_expression ']' ';' | |||||
| | glsl_type_qualifier ';' | | glsl_type_qualifier ';' | ||||
| ; | ; | ||||
| @@ -988,24 +990,34 @@ glsl_function_declarator: | |||||
| ; | ; | ||||
| glsl_function_header_with_parameters: | glsl_function_header_with_parameters: | ||||
| glsl_function_header glsl_parameter_declaration | |||||
| | glsl_function_header_with_parameters ',' glsl_parameter_declaration | |||||
| glsl_function_header lolfx_parameter_declaration | |||||
| | glsl_function_header_with_parameters ',' lolfx_parameter_declaration | |||||
| ; | ; | ||||
| glsl_function_header: | glsl_function_header: | ||||
| glsl_fully_specified_type IDENTIFIER '(' | |||||
| glsl_fully_specified_type lolfx_identifier '(' | |||||
| ; | ; | ||||
| glsl_parameter_declarator: | glsl_parameter_declarator: | ||||
| glsl_type_specifier IDENTIFIER | |||||
| | glsl_type_specifier IDENTIFIER '[' glsl_constant_expression ']' | |||||
| glsl_type_specifier lolfx_identifier | |||||
| | glsl_type_specifier lolfx_identifier '[' glsl_constant_expression ']' | |||||
| ; | |||||
| lolfx_parameter_declaration: | |||||
| glsl_parameter_declaration ':' lolfx_identifier /* HLSL only */ | |||||
| | glsl_parameter_declaration | |||||
| ; | ; | ||||
| glsl_parameter_declaration: | glsl_parameter_declaration: | ||||
| glsl_parameter_type_qualifier glsl_parameter_qualifier glsl_parameter_declarator | |||||
| | glsl_parameter_qualifier glsl_parameter_declarator | |||||
| | glsl_parameter_type_qualifier glsl_parameter_qualifier glsl_parameter_type_specifier | |||||
| | glsl_parameter_qualifier glsl_parameter_type_specifier | |||||
| glsl_parameter_type_qualifier lolfx_parameter_qualifier glsl_parameter_declarator | |||||
| | lolfx_parameter_qualifier glsl_parameter_declarator | |||||
| | glsl_parameter_type_qualifier lolfx_parameter_qualifier glsl_parameter_type_specifier | |||||
| | lolfx_parameter_qualifier glsl_parameter_type_specifier | |||||
| ; | |||||
| lolfx_parameter_qualifier: | |||||
| glsl_parameter_qualifier | |||||
| | GHT_UNIFORM /* HLSL only */ | |||||
| ; | ; | ||||
| glsl_parameter_qualifier: | glsl_parameter_qualifier: | ||||
| @@ -1014,6 +1026,7 @@ glsl_parameter_qualifier: | |||||
| | GHT_OUT | | GHT_OUT | ||||
| | GHT_INOUT | | GHT_INOUT | ||||
| | GT_ATTRIBUTE /* deprecated */ | | GT_ATTRIBUTE /* deprecated */ | ||||
| | GT_VARYING /* deprecated */ | |||||
| ; | ; | ||||
| glsl_parameter_type_specifier: | glsl_parameter_type_specifier: | ||||
| @@ -1022,23 +1035,23 @@ glsl_parameter_type_specifier: | |||||
| glsl_init_declarator_list: | glsl_init_declarator_list: | ||||
| glsl_single_declaration | glsl_single_declaration | ||||
| | glsl_init_declarator_list ',' IDENTIFIER | |||||
| | glsl_init_declarator_list ',' IDENTIFIER '[' ']' | |||||
| | glsl_init_declarator_list ',' IDENTIFIER '[' glsl_constant_expression ']' | |||||
| | glsl_init_declarator_list ',' IDENTIFIER '[' ']' '=' glsl_initializer | |||||
| | glsl_init_declarator_list ',' IDENTIFIER '[' glsl_constant_expression ']' '=' glsl_initializer | |||||
| | glsl_init_declarator_list ',' IDENTIFIER '=' glsl_initializer | |||||
| | glsl_init_declarator_list ',' lolfx_identifier | |||||
| | glsl_init_declarator_list ',' lolfx_identifier '[' ']' | |||||
| | glsl_init_declarator_list ',' lolfx_identifier '[' glsl_constant_expression ']' | |||||
| | glsl_init_declarator_list ',' lolfx_identifier '[' ']' '=' glsl_initializer | |||||
| | glsl_init_declarator_list ',' lolfx_identifier '[' glsl_constant_expression ']' '=' glsl_initializer | |||||
| | glsl_init_declarator_list ',' lolfx_identifier '=' glsl_initializer | |||||
| ; | ; | ||||
| glsl_single_declaration: | glsl_single_declaration: | ||||
| glsl_fully_specified_type | glsl_fully_specified_type | ||||
| | glsl_fully_specified_type IDENTIFIER | |||||
| | glsl_fully_specified_type IDENTIFIER '[' ']' | |||||
| | glsl_fully_specified_type IDENTIFIER '[' glsl_constant_expression ']' | |||||
| | glsl_fully_specified_type IDENTIFIER '[' ']' '=' glsl_initializer | |||||
| | glsl_fully_specified_type IDENTIFIER '[' glsl_constant_expression ']' '=' glsl_initializer | |||||
| | glsl_fully_specified_type IDENTIFIER '=' glsl_initializer | |||||
| | GT_INVARIANT IDENTIFIER | |||||
| | glsl_fully_specified_type lolfx_identifier | |||||
| | glsl_fully_specified_type lolfx_identifier '[' ']' | |||||
| | glsl_fully_specified_type lolfx_identifier '[' glsl_constant_expression ']' | |||||
| | glsl_fully_specified_type lolfx_identifier '[' ']' '=' glsl_initializer | |||||
| | glsl_fully_specified_type lolfx_identifier '[' glsl_constant_expression ']' '=' glsl_initializer | |||||
| | glsl_fully_specified_type lolfx_identifier '=' glsl_initializer | |||||
| | GT_INVARIANT lolfx_identifier | |||||
| ; | ; | ||||
| glsl_fully_specified_type: | glsl_fully_specified_type: | ||||
| @@ -1066,8 +1079,8 @@ glsl_layout_qualifier_id_list: | |||||
| ; | ; | ||||
| glsl_layout_qualifier_id: | glsl_layout_qualifier_id: | ||||
| IDENTIFIER | |||||
| | IDENTIFIER '=' INTCONSTANT | |||||
| lolfx_identifier | |||||
| | lolfx_identifier '=' INTCONSTANT | |||||
| ; | ; | ||||
| glsl_parameter_type_qualifier: | glsl_parameter_type_qualifier: | ||||
| @@ -1097,6 +1110,7 @@ glsl_storage_qualifier: | |||||
| | GT_SAMPLE GHT_OUT | | GT_SAMPLE GHT_OUT | ||||
| | GHT_UNIFORM | | GHT_UNIFORM | ||||
| | GT_ATTRIBUTE /* deprecated */ | | GT_ATTRIBUTE /* deprecated */ | ||||
| | GT_VARYING /* deprecated */ | |||||
| ; | ; | ||||
| glsl_type_specifier: | glsl_type_specifier: | ||||
| @@ -1105,9 +1119,14 @@ glsl_type_specifier: | |||||
| ; | ; | ||||
| glsl_type_specifier_no_prec: | glsl_type_specifier_no_prec: | ||||
| lolfx_type_specifier_nonarray | |||||
| | lolfx_type_specifier_nonarray '[' ']' | |||||
| | lolfx_type_specifier_nonarray '[' glsl_constant_expression ']' | |||||
| lolfx_type_specifier_nonarray: | |||||
| glsl_type_specifier_nonarray | glsl_type_specifier_nonarray | ||||
| | glsl_type_specifier_nonarray '[' ']' | |||||
| | glsl_type_specifier_nonarray '[' glsl_constant_expression ']' | |||||
| | group_hlsl_type /* HLSL only */ | |||||
| ; | |||||
| glsl_type_specifier_nonarray: | glsl_type_specifier_nonarray: | ||||
| GHT_VOID | GHT_VOID | ||||
| @@ -1116,85 +1135,11 @@ glsl_type_specifier_nonarray: | |||||
| | GHT_INT | | GHT_INT | ||||
| | GHT_UINT | | GHT_UINT | ||||
| | GHT_BOOL | | GHT_BOOL | ||||
| | GT_VEC2 | |||||
| | GT_VEC3 | |||||
| | GT_VEC4 | |||||
| | GT_DVEC2 | |||||
| | GT_DVEC3 | |||||
| | GT_DVEC4 | |||||
| | GT_BVEC2 | |||||
| | GT_BVEC3 | |||||
| | GT_BVEC4 | |||||
| | GT_IVEC2 | |||||
| | GT_IVEC3 | |||||
| | GT_IVEC4 | |||||
| | GT_UVEC2 | |||||
| | GT_UVEC3 | |||||
| | GT_UVEC4 | |||||
| | GT_MAT2 | |||||
| | GT_MAT3 | |||||
| | GT_MAT4 | |||||
| | GT_MAT2X2 | |||||
| | GT_MAT2X3 | |||||
| | GT_MAT2X4 | |||||
| | GT_MAT3X2 | |||||
| | GT_MAT3X3 | |||||
| | GT_MAT3X4 | |||||
| | GT_MAT4X2 | |||||
| | GT_MAT4X3 | |||||
| | GT_MAT4X4 | |||||
| | GT_DMAT2 | |||||
| | GT_DMAT3 | |||||
| | GT_DMAT4 | |||||
| | GT_DMAT2X2 | |||||
| | GT_DMAT2X3 | |||||
| | GT_DMAT2X4 | |||||
| | GT_DMAT3X2 | |||||
| | GT_DMAT3X3 | |||||
| | GT_DMAT3X4 | |||||
| | GT_DMAT4X2 | |||||
| | GT_DMAT4X3 | |||||
| | GT_DMAT4X4 | |||||
| | group_glsl_type | |||||
| | GHT_SAMPLER1D | | GHT_SAMPLER1D | ||||
| | GHT_SAMPLER2D | | GHT_SAMPLER2D | ||||
| | GHT_SAMPLER3D | | GHT_SAMPLER3D | ||||
| | GHT_SAMPLERCUBE | | GHT_SAMPLERCUBE | ||||
| | GT_SAMPLER1DSHADOW | |||||
| | GT_SAMPLER2DSHADOW | |||||
| | GT_SAMPLERCUBESHADOW | |||||
| | GT_SAMPLER1DARRAY | |||||
| | GT_SAMPLER2DARRAY | |||||
| | GT_SAMPLER1DARRAYSHADOW | |||||
| | GT_SAMPLER2DARRAYSHADOW | |||||
| | GT_SAMPLERCUBEARRAY | |||||
| | GT_SAMPLERCUBEARRAYSHADOW | |||||
| | GT_ISAMPLER1D | |||||
| | GT_ISAMPLER2D | |||||
| | GT_ISAMPLER3D | |||||
| | GT_ISAMPLERCUBE | |||||
| | GT_ISAMPLER1DARRAY | |||||
| | GT_ISAMPLER2DARRAY | |||||
| | GT_ISAMPLERCUBEARRAY | |||||
| | GT_USAMPLER1D | |||||
| | GT_USAMPLER2D | |||||
| | GT_USAMPLER3D | |||||
| | GT_USAMPLERCUBE | |||||
| | GT_USAMPLER1DARRAY | |||||
| | GT_USAMPLER2DARRAY | |||||
| | GT_USAMPLERCUBEARRAY | |||||
| | GT_SAMPLER2DRECT | |||||
| | GT_SAMPLER2DRECTSHADOW | |||||
| | GT_ISAMPLER2DRECT | |||||
| | GT_USAMPLER2DRECT | |||||
| | GT_SAMPLERBUFFER | |||||
| | GT_ISAMPLERBUFFER | |||||
| | GT_USAMPLERBUFFER | |||||
| | GT_SAMPLER2DMS | |||||
| | GT_ISAMPLER2DMS | |||||
| | GT_USAMPLER2DMS | |||||
| | GT_SAMPLER2DMSARRAY | |||||
| | GT_ISAMPLER2DMSARRAY | |||||
| | GT_USAMPLER2DMSARRAY | |||||
| | glsl_struct_specifier | | glsl_struct_specifier | ||||
| | TYPENAME | | TYPENAME | ||||
| ; | ; | ||||
| @@ -1206,7 +1151,7 @@ glsl_precision_qualifier: | |||||
| ; | ; | ||||
| glsl_struct_specifier: | glsl_struct_specifier: | ||||
| GHT_STRUCT IDENTIFIER '{' glsl_struct_declaration_list '}' | |||||
| GHT_STRUCT lolfx_identifier '{' glsl_struct_declaration_list '}' | |||||
| | GHT_STRUCT '{' glsl_struct_declaration_list '}' | | GHT_STRUCT '{' glsl_struct_declaration_list '}' | ||||
| ; | ; | ||||
| @@ -1226,9 +1171,9 @@ glsl_struct_declarator_list: | |||||
| ; | ; | ||||
| glsl_struct_declarator: | glsl_struct_declarator: | ||||
| IDENTIFIER | |||||
| | IDENTIFIER '[' ']' | |||||
| | IDENTIFIER '[' glsl_constant_expression ']' | |||||
| lolfx_identifier | |||||
| | lolfx_identifier '[' ']' | |||||
| | lolfx_identifier '[' glsl_constant_expression ']' | |||||
| ; | ; | ||||
| glsl_initializer: | glsl_initializer: | ||||
| @@ -1290,7 +1235,7 @@ glsl_selection_rest_statement: | |||||
| glsl_condition: | glsl_condition: | ||||
| glsl_expression | glsl_expression | ||||
| | glsl_fully_specified_type IDENTIFIER '=' glsl_initializer | |||||
| | glsl_fully_specified_type lolfx_identifier '=' glsl_initializer | |||||
| ; | ; | ||||
| glsl_switch_statement: | glsl_switch_statement: | ||||
| @@ -110,6 +110,7 @@ typedef lol::LolFxParser::token_type token_type; | |||||
| */ | */ | ||||
| "attribute" { return token::GT_ATTRIBUTE; } | "attribute" { return token::GT_ATTRIBUTE; } | ||||
| "varying" { return token::GT_VARYING; } | |||||
| /* | /* | ||||
| * GLSL vector types | * GLSL vector types | ||||
| @@ -488,12 +489,6 @@ typedef lol::LolFxParser::token_type token_type; | |||||
| "#"[ \t]*"version".* { /* ignore for now */ } | "#"[ \t]*"version".* { /* ignore for now */ } | ||||
| /* | |||||
| * LolFx preprocessor directives | |||||
| */ | |||||
| "#"[ \t]*(?i:pragma)[ \t]*(?i:lolfx) { return token::PRAGMA_LOLFX; } | |||||
| /* | /* | ||||
| * HLSL reserved keywords | * HLSL reserved keywords | ||||
| * Gathered from http://msdn.microsoft.com/en-us/library/windows/desktop/bb509569%28v=vs.85%29.aspx | * Gathered from http://msdn.microsoft.com/en-us/library/windows/desktop/bb509569%28v=vs.85%29.aspx | ||||
| @@ -572,15 +567,15 @@ typedef lol::LolFxParser::token_type token_type; | |||||
| return token::INTCONSTANT; | return token::INTCONSTANT; | ||||
| } | } | ||||
| [a-zA-Z][a-zA-Z0-9_]* { | |||||
| [a-zA-Z_][a-zA-Z0-9_]* { | |||||
| /* Copy token for now */ | /* Copy token for now */ | ||||
| yylval->sval = strdup(yytext); | yylval->sval = strdup(yytext); | ||||
| return token::IDENTIFIER; | return token::IDENTIFIER; | ||||
| } | } | ||||
| [ \t]+ { /* ignore whitespace */ } | |||||
| [\n] { ++yylineno; } | |||||
| . { return token::T_ERROR; } | |||||
| [ \t\r]+ { /* ignore whitespace */ } | |||||
| [\n] { yylloc->lines(1); } | |||||
| . { return (token_type)*yytext; /* accept all characters */ } | |||||
| /* | /* | ||||
| * Ignore C comments | * Ignore C comments | ||||
| @@ -589,7 +584,7 @@ typedef lol::LolFxParser::token_type token_type; | |||||
| "/*" { BEGIN(C_COMMENT); } | "/*" { BEGIN(C_COMMENT); } | ||||
| <C_COMMENT>"*/" { BEGIN(INITIAL); } | <C_COMMENT>"*/" { BEGIN(INITIAL); } | ||||
| <C_COMMENT>[^*\n]* { } | <C_COMMENT>[^*\n]* { } | ||||
| <C_COMMENT>\n { ++yylineno; } | |||||
| <C_COMMENT>\n { yylloc->lines(1); } | |||||
| <C_COMMENT>. { } | <C_COMMENT>. { } | ||||
| /* | /* | ||||
| @@ -597,7 +592,7 @@ typedef lol::LolFxParser::token_type token_type; | |||||
| */ | */ | ||||
| "//" { BEGIN(CPP_COMMENT); } | "//" { BEGIN(CPP_COMMENT); } | ||||
| <CPP_COMMENT>\n { ++yylineno; BEGIN(INITIAL); } | |||||
| <CPP_COMMENT>\n { yylloc->lines(1); BEGIN(INITIAL); } | |||||
| <CPP_COMMENT>.* { } | <CPP_COMMENT>.* { } | ||||
| %% | %% | ||||
| @@ -2,9 +2,9 @@ | |||||
| * Awesome triangle shader | * Awesome triangle shader | ||||
| */ | */ | ||||
| technique Triangle | |||||
| technique FlatColor | |||||
| { | { | ||||
| pass FirstPass | |||||
| pass DefaultPass | |||||
| { | { | ||||
| vertexshader = vert; | vertexshader = vert; | ||||
| pixelshader = frag; | pixelshader = frag; | ||||