1 // 2 //Copyright (C) 2002-2005 3Dlabs Inc. Ltd. 3 //All rights reserved. 4 // 5 //Redistribution and use in source and binary forms, with or without 6 //modification, are permitted provided that the following conditions 7 //are met: 8 // 9 // Redistributions of source code must retain the above copyright 10 // notice, this list of conditions and the following disclaimer. 11 // 12 // Redistributions in binary form must reproduce the above 13 // copyright notice, this list of conditions and the following 14 // disclaimer in the documentation and/or other materials provided 15 // with the distribution. 16 // 17 // Neither the name of 3Dlabs Inc. Ltd. nor the names of its 18 // contributors may be used to endorse or promote products derived 19 // from this software without specific prior written permission. 20 // 21 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 //"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 //LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 //FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 //COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 //INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 //BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 //CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 //LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 //ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 //POSSIBILITY OF SUCH DAMAGE. 33 // 34 /****************************************************************************\ 35 Copyright (c) 2002, NVIDIA Corporation. 36 37 NVIDIA Corporation("NVIDIA") supplies this software to you in 38 consideration of your agreement to the following terms, and your use, 39 installation, modification or redistribution of this NVIDIA software 40 constitutes acceptance of these terms. If you do not agree with these 41 terms, please do not use, install, modify or redistribute this NVIDIA 42 software. 43 44 In consideration of your agreement to abide by the following terms, and 45 subject to these terms, NVIDIA grants you a personal, non-exclusive 46 license, under NVIDIA's copyrights in this original NVIDIA software (the 47 "NVIDIA Software"), to use, reproduce, modify and redistribute the 48 NVIDIA Software, with or without modifications, in source and/or binary 49 forms; provided that if you redistribute the NVIDIA Software, you must 50 retain the copyright notice of NVIDIA, this notice and the following 51 text and disclaimers in all such redistributions of the NVIDIA Software. 52 Neither the name, trademarks, service marks nor logos of NVIDIA 53 Corporation may be used to endorse or promote products derived from the 54 NVIDIA Software without specific prior written permission from NVIDIA. 55 Except as expressly stated in this notice, no other rights or licenses 56 express or implied, are granted by NVIDIA herein, including but not 57 limited to any patent rights that may be infringed by your derivative 58 works or by other works in which the NVIDIA Software may be 59 incorporated. No hardware is licensed hereunder. 60 61 THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT 62 WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, 63 INCLUDING WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, 64 NON-INFRINGEMENT, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR 65 ITS USE AND OPERATION EITHER ALONE OR IN COMBINATION WITH OTHER 66 PRODUCTS. 67 68 IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, 69 INCIDENTAL, EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 70 TO, LOST PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 71 USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY 72 OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE 73 NVIDIA SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, 74 TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF 75 NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 76 \****************************************************************************/ 77 78 #ifndef PARSER_H 79 #define PARSER_H 80 81 namespace glslang { 82 83 // Multi-character tokens 84 enum EFixedAtoms { 85 PpAtomMaxSingle = 256, // single character tokens get their own char value as their token, skip them 86 87 // Operators 88 89 PpAtomAdd, 90 PpAtomSub, 91 PpAtomMul, 92 PpAtomDiv, 93 PpAtomMod, 94 95 PpAtomRight, 96 PpAtomLeft, 97 98 PpAtomRightAssign, 99 PpAtomLeftAssign, 100 PpAtomAndAssign, 101 PpAtomOrAssign, 102 PpAtomXorAssign, 103 104 PpAtomAnd, 105 PpAtomOr, 106 PpAtomXor, 107 108 PpAtomEQ, 109 PpAtomNE, 110 PpAtomGE, 111 PpAtomLE, 112 113 PpAtomDecrement, 114 PpAtomIncrement, 115 116 PpAtomPaste, 117 118 // Constants 119 120 PpAtomConstInt, 121 PpAtomConstUint, 122 PpAtomConstInt64, 123 PpAtomConstUint64, 124 PpAtomConstFloat, 125 PpAtomConstDouble, 126 PpAtomConstString, 127 128 // Indentifiers 129 PpAtomIdentifier, 130 131 // preprocessor "keywords" 132 133 PpAtomDefine, 134 PpAtomDefined, 135 PpAtomUndef, 136 137 PpAtomIf, 138 PpAtomIfdef, 139 PpAtomIfndef, 140 PpAtomElse, 141 PpAtomElif, 142 PpAtomEndif, 143 144 PpAtomLine, 145 PpAtomPragma, 146 PpAtomError, 147 148 // #version ... 149 PpAtomVersion, 150 PpAtomCore, 151 PpAtomCompatibility, 152 PpAtomEs, 153 154 // #extension 155 PpAtomExtension, 156 157 // __LINE__, __FILE__, __VERSION__ 158 159 PpAtomLineMacro, 160 PpAtomFileMacro, 161 PpAtomVersionMacro, 162 163 // #include 164 PpAtomInclude, 165 166 PpAtomLast, 167 }; 168 169 } // end namespace glslang 170 171 #endif /* not PARSER_H */ 172