Changeset 1411 for trunk/test/sandbox
- Timestamp:
- May 23, 2012, 7:30:54 PM (11 years ago)
- Location:
- trunk/test/sandbox/lex
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/sandbox/lex/lolfx.l
r1410 r1411 11 11 12 12 /* 13 * Our language's keywords 14 */ 15 16 "technique" { return TECHNIQUE; } 17 "pass" { return PASS; } 13 * GLSL keywords 14 */ 15 16 "subroutine" { return GT_SUBROUTINE; } 17 "patch" { return GT_PATCH; } 18 "sample" { return GT_SAMPLE; } 19 "flat" { return GT_FLAT; } 20 "smooth" { return GT_SMOOTH; } 21 "layout" { return GT_LAYOUT; } 22 "sampler1dshadow" { return GT_SAMPLER1DSHADOW; } 23 "sampler2dshadow" { return GT_SAMPLER2DSHADOW; } 24 "samplercubeshadow" { return GT_SAMPLERCUBESHADOW; } 25 "sampler1darray" { return GT_SAMPLER1DARRAY; } 26 "sampler2darray" { return GT_SAMPLER2DARRAY; } 27 "sampler1darrayshadow" { return GT_SAMPLER1DARRAYSHADOW; } 28 "sampler2darrayshadow" { return GT_SAMPLER2DARRAYSHADOW; } 29 "isampler1d" { return GT_ISAMPLER1D; } 30 "isampler2d" { return GT_ISAMPLER2D; } 31 "isampler3d" { return GT_ISAMPLER3D; } 32 "isamplercube" { return GT_ISAMPLERCUBE; } 33 "isampler1darray" { return GT_ISAMPLER1DARRAY; } 34 "isampler2darray" { return GT_ISAMPLER2DARRAY; } 35 "usampler1d" { return GT_USAMPLER1D; } 36 "usampler2d" { return GT_USAMPLER2D; } 37 "usampler3d" { return GT_USAMPLER3D; } 38 "usamplercube" { return GT_USAMPLERCUBE; } 39 "usampler1darray" { return GT_USAMPLER1DARRAY; } 40 "usampler2darray" { return GT_USAMPLER2DARRAY; } 41 "sampler2drect" { return GT_SAMPLER2DRECT; } 42 "sampler2drectshadow" { return GT_SAMPLER2DRECTSHADOW; } 43 "isampler2drect" { return GT_ISAMPLER2DRECT; } 44 "usampler2drect" { return GT_USAMPLER2DRECT; } 45 "samplerbuffer" { return GT_SAMPLERBUFFER; } 46 "isamplerbuffer" { return GT_ISAMPLERBUFFER; } 47 "usamplerbuffer" { return GT_USAMPLERBUFFER; } 48 "samplercubearray" { return GT_SAMPLERCUBEARRAY; } 49 "samplercubearrayshadow" { return GT_SAMPLERCUBEARRAYSHADOW; } 50 "isamplercubearray" { return GT_ISAMPLERCUBEARRAY; } 51 "usamplercubearray" { return GT_USAMPLERCUBEARRAY; } 52 "sampler2dms" { return GT_SAMPLER2DMS; } 53 "isampler2dms" { return GT_ISAMPLER2DMS; } 54 "usampler2dms" { return GT_USAMPLER2DMS; } 55 "sampler2dmsarray" { return GT_SAMPLER2DMSARRAY; } 56 "isampler2dmsarray" { return GT_ISAMPLER2DMSARRAY; } 57 "usampler2dmsarray" { return GT_USAMPLER2DMSARRAY; } 58 59 "identifier" { return GT_IDENTIFIER; } 60 "type_name" { return GT_TYPE_NAME; } 61 "floatconstant" { return GT_FLOATCONSTANT; } 62 "intconstant" { return GT_INTCONSTANT; } 63 "uintconstant" { return GT_UINTCONSTANT; } 64 "boolconstant" { return GT_BOOLCONSTANT; } 65 66 "field_selection" { return GT_FIELD_SELECTION; } 67 "left_op" { return GT_LEFT_OP; } 68 "right_op" { return GT_RIGHT_OP; } 69 "inc_op" { return GT_INC_OP; } 70 "dec_op" { return GT_DEC_OP; } 71 "le_op" { return GT_LE_OP; } 72 "ge_op" { return GT_GE_OP; } 73 "eq_op" { return GT_EQ_OP; } 74 "ne_op" { return GT_NE_OP; } 75 "and_op" { return GT_AND_OP; } 76 "or_op" { return GT_OR_OP; } 77 "xor_op" { return GT_XOR_OP; } 78 "mul_assign" { return GT_MUL_ASSIGN; } 79 "div_assign" { return GT_DIV_ASSIGN; } 80 "add_assign" { return GT_ADD_ASSIGN; } 81 "mod_assign" { return GT_MOD_ASSIGN; } 82 "left_assign" { return GT_LEFT_ASSIGN; } 83 "right_assign" { return GT_RIGHT_ASSIGN; } 84 "and_assign" { return GT_AND_ASSIGN; } 85 "xor_assign" { return GT_XOR_ASSIGN; } 86 "or_assign" { return GT_OR_ASSIGN; } 87 "sub_assign" { return GT_SUB_ASSIGN; } 88 "left_paren" { return GT_LEFT_PAREN; } 89 "right_paren" { return GT_RIGHT_PAREN; } 90 "left_bracket" { return GT_LEFT_BRACKET; } 91 "right_bracket" { return GT_RIGHT_BRACKET; } 92 "left_brace" { return GT_LEFT_BRACE; } 93 "right_brace" { return GT_RIGHT_BRACE; } 94 "dot" { return GT_DOT; } 95 "comma" { return GT_COMMA; } 96 "colon" { return GT_COLON; } 97 "equal" { return GT_EQUAL; } 98 "semicolon" { return GT_SEMICOLON; } 99 "bang" { return GT_BANG; } 100 "dash" { return GT_DASH; } 101 "tilde" { return GT_TILDE; } 102 "plus" { return GT_PLUS; } 103 "star" { return GT_STAR; } 104 "slash" { return GT_SLASH; } 105 "percent" { return GT_PERCENT; } 106 "left_angle" { return GT_LEFT_ANGLE; } 107 "right_angle" { return GT_RIGHT_ANGLE; } 108 "vertical_bar" { return GT_VERTICAL_BAR; } 109 "caret" { return GT_CARET; } 110 "ampersand" { return GT_AMPERSAND; } 111 "question" { return GT_QUESTION; } 112 "invariant" { return GT_INVARIANT; } 113 "high_precision" { return GT_HIGH_PRECISION; } 114 "medium_precision" { return GT_MEDIUM_PRECISION; } 115 "low_precision" { return GT_LOW_PRECISION; } 116 "precision" { return GT_PRECISION; } 117 118 /* 119 * GLSL vector types 120 */ 121 122 "bvec2" { return GT_BVEC2; } 123 "bvec3" { return GT_BVEC3; } 124 "bvec4" { return GT_BVEC4; } 125 126 "ivec2" { return GT_IVEC2; } 127 "ivec3" { return GT_IVEC3; } 128 "ivec4" { return GT_IVEC4; } 129 130 "uvec2" { return GT_UVEC2; } 131 "uvec3" { return GT_UVEC3; } 132 "uvec4" { return GT_UVEC4; } 133 134 "vec2" { return GT_VEC2; } 135 "vec3" { return GT_VEC3; } 136 "vec4" { return GT_VEC4; } 137 "mat2" { return GT_MAT2; } 138 "mat2x2" { return GT_MAT2X2; } 139 "mat2x3" { return GT_MAT2X3; } 140 "mat2x4" { return GT_MAT2X4; } 141 "mat3" { return GT_MAT3; } 142 "mat3x2" { return GT_MAT3X2; } 143 "mat3x3" { return GT_MAT3X3; } 144 "mat3x4" { return GT_MAT3X4; } 145 "mat4" { return GT_MAT4; } 146 "mat4x2" { return GT_MAT4X2; } 147 "mat4x3" { return GT_MAT4X3; } 148 "mat4x4" { return GT_MAT4X4; } 149 150 "dvec2" { return GT_DVEC2; } 151 "dvec3" { return GT_DVEC3; } 152 "dvec4" { return GT_DVEC4; } 153 "dmat2" { return GT_DMAT2; } 154 "dmat2x2" { return GT_DMAT2X2; } 155 "dmat2x3" { return GT_DMAT2X3; } 156 "dmat2x4" { return GT_DMAT2X4; } 157 "dmat3" { return GT_DMAT3; } 158 "dmat3x2" { return GT_DMAT3X2; } 159 "dmat3x3" { return GT_DMAT3X3; } 160 "dmat3x4" { return GT_DMAT3X4; } 161 "dmat4" { return GT_DMAT4; } 162 "dmat4x2" { return GT_DMAT4X2; } 163 "dmat4x3" { return GT_DMAT4X3; } 164 "dmat4x4" { return GT_DMAT4X4; } 165 166 /* 167 * GLSL keywords that are also valid or reserved in HLSL 168 * and HLSL keywords that are also valid or reserved in GLSL. 169 */ 170 171 "bool" { return GHT_BOOL; } 172 "break" { return GHT_BREAK; } 173 "case" { return GHT_CASE; } 174 "centroid" { return GHT_CENTROID; } 175 "const" { return GHT_CONST; } 176 "continue" { return GHT_CONTINUE; } 177 "default" { return GHT_DEFAULT; } 178 "discard" { return GHT_DISCARD; } 179 "do" { return GHT_DO; } 180 "double" { return GHT_DOUBLE; } 181 "else" { return GHT_ELSE; } 182 "float" { return GHT_FLOAT; } 183 "for" { return GHT_FOR; } 184 "if" { return GHT_IF; } 185 "in" { return GHT_IN; } 186 "inout" { return GHT_INOUT; } 187 "int" { return GHT_INT; } 188 "noperspective" { return GHT_NOPERSPECTIVE; } 189 "out" { return GHT_OUT; } 190 "return" { return GHT_RETURN; } 191 "sampler1d" { return GHT_SAMPLER1D; } 192 "sampler2d" { return GHT_SAMPLER2D; } 193 "sampler3d" { return GHT_SAMPLER3D; } 194 "samplercube" { return GHT_SAMPLERCUBE; } 195 "struct" { return GHT_STRUCT; } 196 "switch" { return GHT_SWITCH; } 197 "uint" { return GHT_UINT; } 198 "uniform" { return GHT_UNIFORM; } 199 "void" { return GHT_VOID; } 200 "while" { return GHT_WHILE; } 201 202 (?i:bool) { return HGT_BOOL; } 203 (?i:break) { return HGT_BREAK; } 204 (?i:case) { return HGT_CASE; } 205 (?i:centroid) { return HGT_CENTROID; } 206 (?i:const) { return HGT_CONST; } 207 (?i:continue) { return HGT_CONTINUE; } 208 (?i:default) { return HGT_DEFAULT; } 209 (?i:discard) { return HGT_DISCARD; } 210 (?i:do) { return HGT_DO; } 211 (?i:double) { return HGT_DOUBLE; } 212 (?i:else) { return HGT_ELSE; } 213 (?i:float) { return HGT_FLOAT; } 214 (?i:for) { return HGT_FOR; } 215 (?i:if) { return HGT_IF; } 216 (?i:in) { return HGT_IN; } 217 (?i:inout) { return HGT_INOUT; } 218 (?i:int) { return HGT_INT; } 219 (?i:noperspective) { return HGT_NOPERSPECTIVE; } 220 (?i:out) { return HGT_OUT; } 221 (?i:return) { return HGT_RETURN; } 222 (?i:sampler1d) { return HGT_SAMPLER1D; } 223 (?i:sampler2d) { return HGT_SAMPLER2D; } 224 (?i:sampler3d) { return HGT_SAMPLER3D; } 225 (?i:samplercube) { return HGT_SAMPLERCUBE; } 226 (?i:struct) { return HGT_STRUCT; } 227 (?i:switch) { return HGT_SWITCH; } 228 (?i:uint) { return HGT_UINT; } 229 (?i:uniform) { return HGT_UNIFORM; } 230 (?i:void) { return HGT_VOID; } 231 (?i:while) { return HGT_WHILE; } 232 233 /* 234 * HLSL keywords 235 * Gathered from http://msdn.microsoft.com/en-us/library/windows/desktop/bb509568%28v=vs.85%29.aspx 236 */ 237 238 (?i:appendstructuredbuffer) { return HT_APPENDSTRUCTUREDBUFFER; } 239 (?i:asm) { return HT_ASM; } 240 (?i:asm_fragment) { return HT_ASM_FRAGMENT; } 241 (?i:blendstate) { return HT_BLENDSTATE; } 242 (?i:buffer) { return HT_BUFFER; } 243 (?i:byteaddressbuffer) { return HT_BYTEADDRESSBUFFER; } 244 (?i:cbuffer) { return HT_CBUFFER; } 245 (?i:column_major) { return HT_COLUMN_MAJOR; } 246 (?i:compile) { return HT_COMPILE; } 247 (?i:compile_fragment) { return HT_COMPILE_FRAGMENT; } 248 (?i:compileshader) { return HT_COMPILESHADER; } 249 (?i:computeshader) { return HT_COMPUTESHADER; } 250 (?i:consumestructuredbuffer) { return HT_CONSUMESTRUCTUREDBUFFER; } 251 (?i:depthstencilstate) { return HT_DEPTHSTENCILSTATE; } 252 (?i:depthstencilview) { return HT_DEPTHSTENCILVIEW; } 253 (?i:domainshader) { return HT_DOMAINSHADER; } 254 (?i:dword) { return HT_DWORD; } 255 (?i:extern) { return HT_EXTERN; } 256 (?i:false) { return HT_FALSE; } 257 (?i:fxgroup) { return HT_FXGROUP; } 258 (?i:geometryshader) { return HT_GEOMETRYSHADER; } 259 (?i:groupshared) { return HT_GROUPSHARED; } 260 (?i:half) { return HT_HALF; } 261 (?i:hullshader) { return HT_HULLSHADER; } 262 (?i:inline) { return HT_INLINE; } 263 (?i:inputpatch) { return HT_INPUTPATCH; } 264 (?i:interface) { return HT_INTERFACE; } 265 (?i:line) { return HT_LINE; } 266 (?i:lineadj) { return HT_LINEADJ; } 267 (?i:linear) { return HT_LINEAR; } 268 (?i:linestream) { return HT_LINESTREAM; } 269 (?i:matrix) { return HT_MATRIX; } 270 (?i:namespace) { return HT_NAMESPACE; } 271 (?i:nointerpolation) { return HT_NOINTERPOLATION; } 272 (?i:null) { return HT_NULL; } 273 (?i:outputpatch) { return HT_OUTPUTPATCH; } 274 (?i:packoffset) { return HT_PACKOFFSET; } 275 (?i:pass) { return HT_PASS; } 276 (?i:pixelfragment) { return HT_PIXELFRAGMENT; } 277 (?i:pixelshader) { return HT_PIXELSHADER; } 278 (?i:point) { return HT_POINT; } 279 (?i:pointstream) { return HT_POINTSTREAM; } 280 (?i:precise) { return HT_PRECISE; } 281 (?i:rasterizerstate) { return HT_RASTERIZERSTATE; } 282 (?i:rendertargetview) { return HT_RENDERTARGETVIEW; } 283 (?i:register) { return HT_REGISTER; } 284 (?i:row_major) { return HT_ROW_MAJOR; } 285 (?i:rwbuffer) { return HT_RWBUFFER; } 286 (?i:rwbyteaddressbuffer) { return HT_RWBYTEADDRESSBUFFER; } 287 (?i:rwstructuredbuffer) { return HT_RWSTRUCTUREDBUFFER; } 288 (?i:rwtexture1d) { return HT_RWTEXTURE1D; } 289 (?i:rwtexture1darray) { return HT_RWTEXTURE1DARRAY; } 290 (?i:rwtexture2d) { return HT_RWTEXTURE2D; } 291 (?i:rwtexture2darray) { return HT_RWTEXTURE2DARRAY; } 292 (?i:rwtexture3d) { return HT_RWTEXTURE3D; } 293 (?i:sampler) { return HT_SAMPLER; } 294 (?i:sampler_state) { return HT_SAMPLER_STATE; } 295 (?i:samplerstate) { return HT_SAMPLERSTATE; } 296 (?i:samplercomparisonstate) { return HT_SAMPLERCOMPARISONSTATE; } 297 (?i:shared) { return HT_SHARED; } 298 (?i:snorm) { return HT_SNORM; } 299 (?i:stateblock) { return HT_STATEBLOCK; } 300 (?i:stateblock_state) { return HT_STATEBLOCK_STATE; } 301 (?i:static) { return HT_STATIC; } 302 (?i:string) { return HT_STRING; } 303 (?i:structuredbuffer) { return HT_STRUCTUREDBUFFER; } 304 (?i:tbuffer) { return HT_TBUFFER; } 305 (?i:technique) { return HT_TECHNIQUE; } 306 (?i:technique10) { return HT_TECHNIQUE10; } 307 (?i:technique11xz) { return HT_TECHNIQUE11XZ; } 308 "texture" { return HT_TEXTURE; } 309 (?i:texture1d) { return HT_TEXTURE1D; } 310 (?i:texture1darray) { return HT_TEXTURE1DARRAY; } 311 (?i:texture2d) { return HT_TEXTURE2D; } 312 (?i:texture2darray) { return HT_TEXTURE2DARRAY; } 313 (?i:texture2dms) { return HT_TEXTURE2DMS; } 314 (?i:texture2dmsarray) { return HT_TEXTURE2DMSARRAY; } 315 (?i:texture3d) { return HT_TEXTURE3D; } 316 (?i:texturecube) { return HT_TEXTURECUBE; } 317 (?i:texturecubearray) { return HT_TEXTURECUBEARRAY; } 318 (?i:true) { return HT_TRUE; } 319 (?i:typedef) { return HT_TYPEDEF; } 320 (?i:triangle) { return HT_TRIANGLE; } 321 (?i:triangleadj) { return HT_TRIANGLEADJ; } 322 (?i:trianglestream) { return HT_TRIANGLESTREAM; } 323 (?i:unorm) { return HT_UNORM; } 324 (?i:vector) { return HT_VECTOR; } 325 (?i:vertexfragment) { return HT_VERTEXFRAGMENT; } 326 (?i:vertexshader) { return HT_VERTEXSHADER; } 327 (?i:volatile) { return HT_VOLATILE; } 328 329 /* 330 * HLSL vector types 331 * TODO: this can probably be factored somehow 332 */ 333 334 (?i:bool1) { return HT_BOOL1; } 335 (?i:bool1x1) { return HT_BOOL1x1; } 336 (?i:bool2x1) { return HT_BOOL2x1; } 337 (?i:bool3x1) { return HT_BOOL3x1; } 338 (?i:bool4x1) { return HT_BOOL4x1; } 339 (?i:bool2) { return HT_BOOL2; } 340 (?i:bool1x2) { return HT_BOOL1x2; } 341 (?i:bool2x2) { return HT_BOOL2x2; } 342 (?i:bool3x2) { return HT_BOOL3x2; } 343 (?i:bool4x2) { return HT_BOOL4x2; } 344 (?i:bool3) { return HT_BOOL3; } 345 (?i:bool1x3) { return HT_BOOL1x3; } 346 (?i:bool2x3) { return HT_BOOL2x3; } 347 (?i:bool3x3) { return HT_BOOL3x3; } 348 (?i:bool4x3) { return HT_BOOL4x3; } 349 (?i:bool4) { return HT_BOOL4; } 350 (?i:bool1x4) { return HT_BOOL1x4; } 351 (?i:bool2x4) { return HT_BOOL2x4; } 352 (?i:bool3x4) { return HT_BOOL3x4; } 353 (?i:bool4x4) { return HT_BOOL4x4; } 354 355 (?i:float1) { return HT_FLOAT1; } 356 (?i:float1x1) { return HT_FLOAT1x1; } 357 (?i:float2x1) { return HT_FLOAT2x1; } 358 (?i:float3x1) { return HT_FLOAT3x1; } 359 (?i:float4x1) { return HT_FLOAT4x1; } 360 (?i:float2) { return HT_FLOAT2; } 361 (?i:float1x2) { return HT_FLOAT1x2; } 362 (?i:float2x2) { return HT_FLOAT2x2; } 363 (?i:float3x2) { return HT_FLOAT3x2; } 364 (?i:float4x2) { return HT_FLOAT4x2; } 365 (?i:float3) { return HT_FLOAT3; } 366 (?i:float1x3) { return HT_FLOAT1x3; } 367 (?i:float2x3) { return HT_FLOAT2x3; } 368 (?i:float3x3) { return HT_FLOAT3x3; } 369 (?i:float4x3) { return HT_FLOAT4x3; } 370 (?i:float4) { return HT_FLOAT4; } 371 (?i:float1x4) { return HT_FLOAT1x4; } 372 (?i:float2x4) { return HT_FLOAT2x4; } 373 (?i:float3x4) { return HT_FLOAT3x4; } 374 (?i:float4x4) { return HT_FLOAT4x4; } 375 376 (?i:double1) { return HT_DOUBLE1; } 377 (?i:double1x1) { return HT_DOUBLE1x1; } 378 (?i:double2x1) { return HT_DOUBLE2x1; } 379 (?i:double3x1) { return HT_DOUBLE3x1; } 380 (?i:double4x1) { return HT_DOUBLE4x1; } 381 (?i:double2) { return HT_DOUBLE2; } 382 (?i:double1x2) { return HT_DOUBLE1x2; } 383 (?i:double2x2) { return HT_DOUBLE2x2; } 384 (?i:double3x2) { return HT_DOUBLE3x2; } 385 (?i:double4x2) { return HT_DOUBLE4x2; } 386 (?i:double3) { return HT_DOUBLE3; } 387 (?i:double1x3) { return HT_DOUBLE1x3; } 388 (?i:double2x3) { return HT_DOUBLE2x3; } 389 (?i:double3x3) { return HT_DOUBLE3x3; } 390 (?i:double4x3) { return HT_DOUBLE4x3; } 391 (?i:double4) { return HT_DOUBLE4; } 392 (?i:double1x4) { return HT_DOUBLE1x4; } 393 (?i:double2x4) { return HT_DOUBLE2x4; } 394 (?i:double3x4) { return HT_DOUBLE3x4; } 395 (?i:double4x4) { return HT_DOUBLE4x4; } 396 397 (?i:dword1) { return HT_DWORD1; } 398 (?i:dword1x1) { return HT_DWORD1x1; } 399 (?i:dword2x1) { return HT_DWORD2x1; } 400 (?i:dword3x1) { return HT_DWORD3x1; } 401 (?i:dword4x1) { return HT_DWORD4x1; } 402 (?i:dword2) { return HT_DWORD2; } 403 (?i:dword1x2) { return HT_DWORD1x2; } 404 (?i:dword2x2) { return HT_DWORD2x2; } 405 (?i:dword3x2) { return HT_DWORD3x2; } 406 (?i:dword4x2) { return HT_DWORD4x2; } 407 (?i:dword3) { return HT_DWORD3; } 408 (?i:dword1x3) { return HT_DWORD1x3; } 409 (?i:dword2x3) { return HT_DWORD2x3; } 410 (?i:dword3x3) { return HT_DWORD3x3; } 411 (?i:dword4x3) { return HT_DWORD4x3; } 412 (?i:dword4) { return HT_DWORD4; } 413 (?i:dword1x4) { return HT_DWORD1x4; } 414 (?i:dword2x4) { return HT_DWORD2x4; } 415 (?i:dword3x4) { return HT_DWORD3x4; } 416 (?i:dword4x4) { return HT_DWORD4x4; } 417 418 (?i:int1) { return HT_INT1; } 419 (?i:int1x1) { return HT_INT1x1; } 420 (?i:int2x1) { return HT_INT2x1; } 421 (?i:int3x1) { return HT_INT3x1; } 422 (?i:int4x1) { return HT_INT4x1; } 423 (?i:int2) { return HT_INT2; } 424 (?i:int1x2) { return HT_INT1x2; } 425 (?i:int2x2) { return HT_INT2x2; } 426 (?i:int3x2) { return HT_INT3x2; } 427 (?i:int4x2) { return HT_INT4x2; } 428 (?i:int3) { return HT_INT3; } 429 (?i:int1x3) { return HT_INT1x3; } 430 (?i:int2x3) { return HT_INT2x3; } 431 (?i:int3x3) { return HT_INT3x3; } 432 (?i:int4x3) { return HT_INT4x3; } 433 (?i:int4) { return HT_INT4; } 434 (?i:int1x4) { return HT_INT1x4; } 435 (?i:int2x4) { return HT_INT2x4; } 436 (?i:int3x4) { return HT_INT3x4; } 437 (?i:int4x4) { return HT_INT4x4; } 438 439 (?i:uint1) { return HT_UINT1; } 440 (?i:uint1x1) { return HT_UINT1x1; } 441 (?i:uint2x1) { return HT_UINT2x1; } 442 (?i:uint3x1) { return HT_UINT3x1; } 443 (?i:uint4x1) { return HT_UINT4x1; } 444 (?i:uint2) { return HT_UINT2; } 445 (?i:uint1x2) { return HT_UINT1x2; } 446 (?i:uint2x2) { return HT_UINT2x2; } 447 (?i:uint3x2) { return HT_UINT3x2; } 448 (?i:uint4x2) { return HT_UINT4x2; } 449 (?i:uint3) { return HT_UINT3; } 450 (?i:uint1x3) { return HT_UINT1x3; } 451 (?i:uint2x3) { return HT_UINT2x3; } 452 (?i:uint3x3) { return HT_UINT3x3; } 453 (?i:uint4x3) { return HT_UINT4x3; } 454 (?i:uint4) { return HT_UINT4; } 455 (?i:uint1x4) { return HT_UINT1x4; } 456 (?i:uint2x4) { return HT_UINT2x4; } 457 (?i:uint3x4) { return HT_UINT3x4; } 458 (?i:uint4x4) { return HT_UINT4x4; } 459 460 /* 461 * HLSL preprocessor directives 462 * Gathered from http://msdn.microsoft.com/en-us/library/windows/desktop/bb943993%28v=vs.85%29.aspx 463 */ 464 465 "#"[ \t]*"define" { return PREPROCESSOR_DEFINE; } 466 "#"[ \t]*"elif" { return PREPROCESSOR_ELIF; } 467 "#"[ \t]*"else" { return PREPROCESSOR_ELSE; } 468 "#"[ \t]*"endif" { return PREPROCESSOR_ENDIF; } 469 "#"[ \t]*"error" { return PREPROCESSOR_ERROR; } 470 "#"[ \t]*"if" { return PREPROCESSOR_IF; } 471 "#"[ \t]*"ifdef" { return PREPROCESSOR_IFDEF; } 472 "#"[ \t]*"ifndef" { return PREPROCESSOR_IFNDEF; } 473 "#"[ \t]*"include" { return PREPROCESSOR_INCLUDE; } 474 "#"[ \t]*"line" { return PREPROCESSOR_LINE; } 475 "#"[ \t]*"pragma" { return PREPROCESSOR_PRAGMA; } 476 "#"[ \t]*"undef" { return PREPROCESSOR_UNDEF; } 477 478 /* 479 * HLSL reserved keywords 480 * Gathered from http://msdn.microsoft.com/en-us/library/windows/desktop/bb509569%28v=vs.85%29.aspx 481 */ 482 483 (?i:auto) { return HT_AUTO; } 484 (?i:catch) { return HT_CATCH; } 485 (?i:char) { return HT_CHAR; } 486 (?i:class) { return HT_CLASS; } 487 (?i:const_cast) { return HT_CONST_CAST; } 488 (?i:delete) { return HT_DELETE; } 489 (?i:dynamic_cast) { return HT_DYNAMIC_CAST; } 490 (?i:enum) { return HT_ENUM; } 491 (?i:explicit) { return HT_EXPLICIT; } 492 (?i:friend) { return HT_FRIEND; } 493 (?i:goto) { return HT_GOTO; } 494 (?i:long) { return HT_LONG; } 495 (?i:mutable) { return HT_MUTABLE; } 496 (?i:new) { return HT_NEW; } 497 (?i:operator) { return HT_OPERATOR; } 498 (?i:private) { return HT_PRIVATE; } 499 (?i:protected) { return HT_PROTECTED; } 500 (?i:public) { return HT_PUBLIC; } 501 (?i:reinterpret_cast) { return HT_REINTERPRET_CAST; } 502 (?i:short) { return HT_SHORT; } 503 (?i:signed) { return HT_SIGNED; } 504 (?i:sizeof) { return HT_SIZEOF; } 505 (?i:static_cast) { return HT_STATIC_CAST; } 506 (?i:template) { return HT_TEMPLATE; } 507 (?i:this) { return HT_THIS; } 508 (?i:throw) { return HT_THROW; } 509 (?i:try) { return HT_TRY; } 510 (?i:typename) { return HT_TYPENAME; } 511 (?i:union) { return HT_UNION; } 512 (?i:unsigned) { return HT_UNSIGNED; } 513 (?i:using) { return HT_USING; } 514 (?i:virtual) { return HT_VIRTUAL; } 18 515 19 516 /* … … 23 520 [0-9]+\.[0-9]+ { yylval.fval = atof(yytext); return FLOAT; } 24 521 [0-9]+ { yylval.ival = atoi(yytext); return INT; } 25 [a-zA-Z][a-zA-Z0-9_]* {522 [a-zA-Z][a-zA-Z0-9_]* { 26 523 /* Copy token for now */ 27 524 yylval.sval = strdup(yytext); … … 29 526 } 30 527 [ \t\n]+ ; 31 . { return *yytext; } 528 "{"|"}"|"("|")"|"["|"]" { return *yytext; } 529 . { return *yytext; } 32 530 33 531 /* -
trunk/test/sandbox/lex/lolfx.y
r1409 r1411 20 20 21 21 /* 22 * All the LolFx tokens 23 */ 24 25 %token TECHNIQUE PASS 22 * GLSL keywords 23 * FIXME: unsorted 24 */ 25 26 %token GT_SUBROUTINE GT_PATCH GT_SAMPLE GT_FLAT GT_SMOOTH GT_LAYOUT 27 %token GT_SAMPLER1DSHADOW GT_SAMPLER2DSHADOW GT_SAMPLERCUBESHADOW 28 %token GT_SAMPLER1DARRAY GT_SAMPLER2DARRAY GT_SAMPLER1DARRAYSHADOW 29 %token GT_SAMPLER2DARRAYSHADOW GT_ISAMPLER1D GT_ISAMPLER2D GT_ISAMPLER3D 30 %token GT_ISAMPLERCUBE GT_ISAMPLER1DARRAY GT_ISAMPLER2DARRAY GT_USAMPLER1D 31 %token GT_USAMPLER2D GT_USAMPLER3D GT_USAMPLERCUBE GT_USAMPLER1DARRAY 32 %token GT_USAMPLER2DARRAY GT_SAMPLER2DRECT GT_SAMPLER2DRECTSHADOW 33 %token GT_ISAMPLER2DRECT GT_USAMPLER2DRECT GT_SAMPLERBUFFER GT_ISAMPLERBUFFER 34 %token GT_USAMPLERBUFFER GT_SAMPLERCUBEARRAY GT_SAMPLERCUBEARRAYSHADOW 35 %token GT_ISAMPLERCUBEARRAY GT_USAMPLERCUBEARRAY GT_SAMPLER2DMS GT_ISAMPLER2DMS 36 %token GT_USAMPLER2DMS GT_SAMPLER2DMSARRAY GT_ISAMPLER2DMSARRAY 37 %token GT_USAMPLER2DMSARRAY GT_IDENTIFIER GT_TYPE_NAME GT_FLOATCONSTANT 38 %token GT_INTCONSTANT GT_UINTCONSTANT GT_BOOLCONSTANT GT_FIELD_SELECTION 39 %token GT_LEFT_OP GT_RIGHT_OP GT_INC_OP GT_DEC_OP GT_LE_OP GT_GE_OP GT_EQ_OP 40 %token GT_NE_OP GT_AND_OP GT_OR_OP GT_XOR_OP GT_MUL_ASSIGN GT_DIV_ASSIGN 41 %token GT_ADD_ASSIGN GT_MOD_ASSIGN GT_LEFT_ASSIGN GT_RIGHT_ASSIGN GT_AND_ASSIGN 42 %token GT_XOR_ASSIGN GT_OR_ASSIGN GT_SUB_ASSIGN GT_LEFT_PAREN GT_RIGHT_PAREN 43 %token GT_LEFT_BRACKET GT_RIGHT_BRACKET GT_LEFT_BRACE GT_RIGHT_BRACE GT_DOT 44 %token GT_COMMA GT_COLON GT_EQUAL GT_SEMICOLON GT_BANG GT_DASH GT_TILDE GT_PLUS 45 %token GT_STAR GT_SLASH GT_PERCENT GT_LEFT_ANGLE GT_RIGHT_ANGLE GT_VERTICAL_BAR 46 %token GT_CARET GT_AMPERSAND GT_QUESTION GT_INVARIANT GT_HIGH_PRECISION 47 %token GT_MEDIUM_PRECISION GT_LOW_PRECISION GT_PRECISION GT_BVEC2 GT_BVEC3 48 %token GT_BVEC4 GT_IVEC2 GT_IVEC3 GT_IVEC4 GT_UVEC2 GT_UVEC3 GT_UVEC4 GT_VEC2 49 %token GT_VEC3 GT_VEC4 GT_MAT2 GT_MAT2X2 GT_MAT2X3 GT_MAT2X4 GT_MAT3 GT_MAT3X2 50 %token GT_MAT3X3 GT_MAT3X4 GT_MAT4 GT_MAT4X2 GT_MAT4X3 GT_MAT4X4 GT_DVEC2 51 %token GT_DVEC3 GT_DVEC4 GT_DMAT2 GT_DMAT2X2 GT_DMAT2X3 GT_DMAT2X4 GT_DMAT3 52 %token GT_DMAT3X2 GT_DMAT3X3 GT_DMAT3X4 GT_DMAT4 GT_DMAT4X2 GT_DMAT4X3 53 %token GT_DMAT4X4 54 55 /* 56 * HLSL and GLSL keywords 57 */ 58 59 %token GHT_BOOL GHT_BREAK GHT_CASE GHT_CENTROID GHT_CONST GHT_CONTINUE 60 %token GHT_DEFAULT GHT_DISCARD GHT_DO GHT_DOUBLE GHT_ELSE GHT_FLOAT GHT_FOR 61 %token GHT_IF GHT_IN GHT_INOUT GHT_INT GHT_NOPERSPECTIVE GHT_OUT GHT_RETURN 62 %token GHT_SAMPLER1D GHT_SAMPLER2D GHT_SAMPLER3D GHT_SAMPLERCUBE GHT_STRUCT 63 %token GHT_SWITCH GHT_UINT GHT_UNIFORM GHT_VOID GHT_WHILE 64 65 %token HGT_BOOL HGT_BREAK HGT_CASE HGT_CENTROID HGT_CONST HGT_CONTINUE 66 %token HGT_DEFAULT HGT_DISCARD HGT_DO HGT_DOUBLE HGT_ELSE HGT_FLOAT HGT_FOR 67 %token HGT_IF HGT_IN HGT_INOUT HGT_INT HGT_NOPERSPECTIVE HGT_OUT HGT_RETURN 68 %token HGT_SAMPLER1D HGT_SAMPLER2D HGT_SAMPLER3D HGT_SAMPLERCUBE HGT_STRUCT 69 %token HGT_SWITCH HGT_UINT HGT_UNIFORM HGT_VOID HGT_WHILE 70 71 /* 72 * HLSL keywords 73 */ 74 75 %token HT_APPENDSTRUCTUREDBUFFER HT_ASM HT_ASM_FRAGMENT HT_BLENDSTATE HT_BOOL 76 %token HT_BREAK HT_BUFFER HT_BYTEADDRESSBUFFER HT_CBUFFER HT_CENTROID 77 %token HT_COLUMN_MAJOR HT_COMPILE HT_COMPILE_FRAGMENT HT_COMPILESHADER HT_CONST 78 %token HT_CONTINUE HT_COMPUTESHADER HT_CONSUMESTRUCTUREDBUFFER 79 %token HT_DEPTHSTENCILSTATE HT_DEPTHSTENCILVIEW HT_DISCARD HT_DO HT_DOUBLE 80 %token HT_DOMAINSHADER HT_DWORD HT_ELSE HT_EXTERN HT_FALSE HT_FLOAT HT_FOR 81 %token HT_FXGROUP HT_GEOMETRYSHADER HT_GROUPSHARED HT_HALF HT_HULLSHADER HT_IF 82 %token HT_IN HT_INLINE HT_INOUT HT_INPUTPATCH HT_INT HT_INTERFACE HT_LINE 83 %token HT_LINEADJ HT_LINEAR HT_LINESTREAM HT_MATRIX HT_NAMESPACE 84 %token HT_NOINTERPOLATION HT_NOPERSPECTIVE HT_NULL HT_OUT HT_OUTPUTPATCH 85 %token HT_PACKOFFSET HT_PASS HT_PIXELFRAGMENT HT_PIXELSHADER HT_POINT 86 %token HT_POINTSTREAM HT_PRECISE HT_RASTERIZERSTATE HT_RENDERTARGETVIEW 87 %token HT_RETURN HT_REGISTER HT_ROW_MAJOR HT_RWBUFFER HT_RWBYTEADDRESSBUFFER 88 %token HT_RWSTRUCTUREDBUFFER HT_RWTEXTURE1D HT_RWTEXTURE1DARRAY HT_RWTEXTURE2D 89 %token HT_RWTEXTURE2DARRAY HT_RWTEXTURE3D HT_SAMPLER HT_SAMPLER1D HT_SAMPLER2D 90 %token HT_SAMPLER3D HT_SAMPLERCUBE HT_SAMPLER_STATE HT_SAMPLERSTATE 91 %token HT_SAMPLERCOMPARISONSTATE HT_SHARED HT_SNORM HT_STATEBLOCK 92 %token HT_STATEBLOCK_STATE HT_STATIC HT_STRING HT_STRUCT HT_SWITCH 93 %token HT_STRUCTUREDBUFFER HT_TBUFFER HT_TECHNIQUE HT_TECHNIQUE10 94 %token HT_TECHNIQUE11XZ HT_TEXTURE HT_TEXTURE1D HT_TEXTURE1DARRAY HT_TEXTURE2D 95 %token HT_TEXTURE2DARRAY HT_TEXTURE2DMS HT_TEXTURE2DMSARRAY HT_TEXTURE3D 96 %token HT_TEXTURECUBE HT_TEXTURECUBEARRAY HT_TRUE HT_TYPEDEF HT_TRIANGLE 97 %token HT_TRIANGLEADJ HT_TRIANGLESTREAM HT_UNIFORM HT_UNORM HT_UINT HT_VECTOR 98 %token HT_VERTEXFRAGMENT HT_VERTEXSHADER HT_VOID HT_VOLATILE HT_WHILE 99 100 /* 101 * HLSL types 102 */ 103 104 %token HT_BOOL1 HT_BOOL1x1 HT_BOOL2x1 HT_BOOL3x1 HT_BOOL4x1 105 %token HT_BOOL2 HT_BOOL1x2 HT_BOOL2x2 HT_BOOL3x2 HT_BOOL4x2 106 %token HT_BOOL3 HT_BOOL1x3 HT_BOOL2x3 HT_BOOL3x3 HT_BOOL4x3 107 %token HT_BOOL4 HT_BOOL1x4 HT_BOOL2x4 HT_BOOL3x4 HT_BOOL4x4 108 109 %token HT_FLOAT1 HT_FLOAT1x1 HT_FLOAT2x1 HT_FLOAT3x1 HT_FLOAT4x1 110 %token HT_FLOAT2 HT_FLOAT1x2 HT_FLOAT2x2 HT_FLOAT3x2 HT_FLOAT4x2 111 %token HT_FLOAT3 HT_FLOAT1x3 HT_FLOAT2x3 HT_FLOAT3x3 HT_FLOAT4x3 112 %token HT_FLOAT4 HT_FLOAT1x4 HT_FLOAT2x4 HT_FLOAT3x4 HT_FLOAT4x4 113 114 %token HT_DOUBLE1 HT_DOUBLE1x1 HT_DOUBLE2x1 HT_DOUBLE3x1 HT_DOUBLE4x1 115 %token HT_DOUBLE2 HT_DOUBLE1x2 HT_DOUBLE2x2 HT_DOUBLE3x2 HT_DOUBLE4x2 116 %token HT_DOUBLE3 HT_DOUBLE1x3 HT_DOUBLE2x3 HT_DOUBLE3x3 HT_DOUBLE4x3 117 %token HT_DOUBLE4 HT_DOUBLE1x4 HT_DOUBLE2x4 HT_DOUBLE3x4 HT_DOUBLE4x4 118 119 %token HT_DWORD1 HT_DWORD1x1 HT_DWORD2x1 HT_DWORD3x1 HT_DWORD4x1 120 %token HT_DWORD2 HT_DWORD1x2 HT_DWORD2x2 HT_DWORD3x2 HT_DWORD4x2 121 %token HT_DWORD3 HT_DWORD1x3 HT_DWORD2x3 HT_DWORD3x3 HT_DWORD4x3 122 %token HT_DWORD4 HT_DWORD1x4 HT_DWORD2x4 HT_DWORD3x4 HT_DWORD4x4 123 124 %token HT_INT1 HT_INT1x1 HT_INT2x1 HT_INT3x1 HT_INT4x1 125 %token HT_INT2 HT_INT1x2 HT_INT2x2 HT_INT3x2 HT_INT4x2 126 %token HT_INT3 HT_INT1x3 HT_INT2x3 HT_INT3x3 HT_INT4x3 127 %token HT_INT4 HT_INT1x4 HT_INT2x4 HT_INT3x4 HT_INT4x4 128 129 %token HT_UINT1 HT_UINT1x1 HT_UINT2x1 HT_UINT3x1 HT_UINT4x1 130 %token HT_UINT2 HT_UINT1x2 HT_UINT2x2 HT_UINT3x2 HT_UINT4x2 131 %token HT_UINT3 HT_UINT1x3 HT_UINT2x3 HT_UINT3x3 HT_UINT4x3 132 %token HT_UINT4 HT_UINT1x4 HT_UINT2x4 HT_UINT3x4 HT_UINT4x4 133 134 /* 135 * HLSL preprocessor directives 136 */ 137 138 %token PREPROCESSOR_DEFINE PREPROCESSOR_ELIF PREPROCESSOR_ELSE 139 %token PREPROCESSOR_ENDIF PREPROCESSOR_ERROR PREPROCESSOR_IF 140 %token PREPROCESSOR_IFDEF PREPROCESSOR_IFNDEF PREPROCESSOR_INCLUDE 141 %token PREPROCESSOR_LINE PREPROCESSOR_PRAGMA PREPROCESSOR_UNDEF 142 143 /* 144 * HLSL reserved keywords 145 */ 146 147 %token HT_AUTO HT_CASE HT_CATCH HT_CHAR HT_CLASS HT_CONST_CAST HT_DEFAULT 148 %token HT_DELETE HT_DYNAMIC_CAST HT_ENUM HT_EXPLICIT HT_FRIEND HT_GOTO HT_LONG 149 %token HT_MUTABLE HT_NEW HT_OPERATOR HT_PRIVATE HT_PROTECTED HT_PUBLIC 150 %token HT_REINTERPRET_CAST HT_SHORT HT_SIGNED HT_SIZEOF HT_STATIC_CAST 151 %token HT_TEMPLATE HT_THIS HT_THROW HT_TRY HT_TYPENAME HT_UNION HT_UNSIGNED 152 %token HT_USING HT_VIRTUAL 153 154 /* 155 * Temporary shit 156 */ 157 26 158 %token <ival> INT 27 159 %token <fval> FLOAT … … 49 181 50 182 technique: 51 TECHNIQUE NAME '{' pass_list '}' { std::cout << "TECHNIQUE" << std::endl; }183 HT_TECHNIQUE NAME '{' pass_list '}' { std::cout << "New tech" << std::endl; } 52 184 ; 53 185 … … 62 194 63 195 pass: 64 PASS NAME '{' pass_stmt_list '}' { std::cout << "PASS" << std::endl; }196 HT_PASS NAME '{' pass_stmt_list '}' { std::cout << "New pass" << std::endl; } 65 197 ; 66 198
Note: See TracChangeset
for help on using the changeset viewer.