1/* 2Language: RenderMan 3Description: RenderMan Languages RIB and RSL 4Author: Konstantin Evdokimenko <qewerty@gmail.com> 5Contributors: Shuen-Huei Guan <drake.guan@gmail.com> 6*/ 7 8hljs.LANGUAGES.rib = { 9 defaultMode: { 10 lexems: [hljs.UNDERSCORE_IDENT_RE], 11 illegal: '</', 12 contains: ['comment', 'string', 'number'], 13 keywords: { 14 'keyword': { 15 'ArchiveRecord': 1, 16 'AreaLightSource': 1, 17 'Atmosphere': 1, 18 'Attribute': 1, 19 'AttributeBegin': 1, 20 'AttributeEnd': 1, 21 'Basis': 1, 22 'Begin': 1, 23 'Blobby': 1, 24 'Bound': 1, 25 'Clipping': 1, 26 'ClippingPlane': 1, 27 'Color': 1, 28 'ColorSamples': 1, 29 'ConcatTransform': 1, 30 'Cone': 1, 31 'CoordinateSystem': 1, 32 'CoordSysTransform': 1, 33 'CropWindow': 1, 34 'Curves': 1, 35 'Cylinder': 1, 36 'DepthOfField': 1, 37 'Detail': 1, 38 'DetailRange': 1, 39 'Disk': 1, 40 'Displacement': 1, 41 'Display': 1, 42 'End': 1, 43 'ErrorHandler': 1, 44 'Exposure': 1, 45 'Exterior': 1, 46 'Format': 1, 47 'FrameAspectRatio': 1, 48 'FrameBegin': 1, 49 'FrameEnd': 1, 50 'GeneralPolygon': 1, 51 'GeometricApproximation': 1, 52 'Geometry': 1, 53 'Hider': 1, 54 'Hyperboloid': 1, 55 'Identity': 1, 56 'Illuminate': 1, 57 'Imager': 1, 58 'Interior': 1, 59 'LightSource': 1, 60 'MakeCubeFaceEnvironment': 1, 61 'MakeLatLongEnvironment': 1, 62 'MakeShadow': 1, 63 'MakeTexture': 1, 64 'Matte': 1, 65 'MotionBegin': 1, 66 'MotionEnd': 1, 67 'NuPatch': 1, 68 'ObjectBegin': 1, 69 'ObjectEnd': 1, 70 'ObjectInstance': 1, 71 'Opacity': 1, 72 'Option': 1, 73 'Orientation': 1, 74 'Paraboloid': 1, 75 'Patch': 1, 76 'PatchMesh': 1, 77 'Perspective': 1, 78 'PixelFilter': 1, 79 'PixelSamples': 1, 80 'PixelVariance': 1, 81 'Points': 1, 82 'PointsGeneralPolygons': 1, 83 'PointsPolygons': 1, 84 'Polygon': 1, 85 'Procedural': 1, 86 'Projection': 1, 87 'Quantize': 1, 88 'ReadArchive': 1, 89 'RelativeDetail': 1, 90 'ReverseOrientation': 1, 91 'Rotate': 1, 92 'Scale': 1, 93 'ScreenWindow': 1, 94 'ShadingInterpolation': 1, 95 'ShadingRate': 1, 96 'Shutter': 1, 97 'Sides': 1, 98 'Skew': 1, 99 'SolidBegin': 1, 100 'SolidEnd': 1, 101 'Sphere': 1, 102 'SubdivisionMesh': 1, 103 'Surface': 1, 104 'TextureCoordinates': 1, 105 'Torus': 1, 106 'Transform': 1, 107 'TransformBegin': 1, 108 'TransformEnd': 1, 109 'TransformPoints': 1, 110 'Translate': 1, 111 'TrimCurve': 1, 112 'WorldBegin': 1, 113 'WorldEnd': 1 114 } 115 } 116 }, 117 modes: [ 118 hljs.HASH_COMMENT_MODE, 119 hljs.C_NUMBER_MODE, 120 hljs.APOS_STRING_MODE, 121 hljs.QUOTE_STRING_MODE, 122 hljs.BACKSLASH_ESCAPE 123 ] 124}; 125 126hljs.LANGUAGES.rsl = { 127 defaultMode: { 128 lexems: [hljs.UNDERSCORE_IDENT_RE], 129 illegal: '</', 130 contains: ['comment', 'string', 'number', 'preprocessor', 131 'shader', 'shading'], 132 keywords: { 133 'keyword': {'float': 1, 'color': 1, 'point': 1, 'normal': 1, 'vector': 1, 134 'matrix': 1, 'while': 1, 'for': 1, 'if': 1, 'do': 1, 135 'return': 1, 'else': 1, 'break': 1, 'extern': 1, 'continue': 1}, 136 'built_in': { 137 'abs': 1, 138 'acos': 1, 139 'ambient': 1, 140 'area': 1, 141 'asin': 1, 142 'atan': 1, 143 'atmosphere': 1, 144 'attribute': 1, 145 'calculatenormal': 1, 146 'ceil': 1, 147 'cellnoise': 1, 148 'clamp': 1, 149 'comp': 1, 150 'concat': 1, 151 'cos': 1, 152 'degrees': 1, 153 'depth': 1, 154 'Deriv': 1, 155 'diffuse': 1, 156 'distance': 1, 157 'Du': 1, 158 'Dv': 1, 159 'environment': 1, 160 'exp': 1, 161 'faceforward': 1, 162 'filterstep': 1, 163 'floor': 1, 164 'format': 1, 165 'fresnel': 1, 166 'incident': 1, 167 'length': 1, 168 'lightsource': 1, 169 'log': 1, 170 'match': 1, 171 'max': 1, 172 'min': 1, 173 'mod': 1, 174 'noise': 1, 175 'normalize': 1, 176 'ntransform': 1, 177 'opposite': 1, 178 'option': 1, 179 'phong': 1, 180 'pnoise': 1, 181 'pow': 1, 182 'printf': 1, 183 'ptlined': 1, 184 'radians': 1, 185 'random': 1, 186 'reflect': 1, 187 'refract': 1, 188 'renderinfo': 1, 189 'round': 1, 190 'setcomp': 1, 191 'setxcomp': 1, 192 'setycomp': 1, 193 'setzcomp': 1, 194 'shadow': 1, 195 'sign': 1, 196 'sin': 1, 197 'smoothstep': 1, 198 'specular': 1, 199 'specularbrdf': 1, 200 'spline': 1, 201 'sqrt': 1, 202 'step': 1, 203 'tan': 1, 204 'texture': 1, 205 'textureinfo': 1, 206 'trace': 1, 207 'transform': 1, 208 'vtransform': 1, 209 'xcomp': 1, 210 'ycomp': 1, 211 'zcomp': 1 212 } 213 } 214 }, 215 modes: [ 216 { 217 className: 'shader', 218 begin: 'surface |displacement |light |volume |imager ', end: '\\(', 219 lexems: [hljs.IDENT_RE], 220 keywords: {'surface': 1, 'displacement': 1, 'light': 1, 'volume': 1, 'imager': 1} 221 }, 222 { 223 className: 'shading', 224 begin: 'illuminate|illuminance|gather', end: '\\(', 225 lexems: [hljs.IDENT_RE], 226 keywords: {'illuminate': 1, 'illuminance': 1, 'gather': 1} 227 }, 228 hljs.C_LINE_COMMENT_MODE, 229 hljs.C_BLOCK_COMMENT_MODE, 230 hljs.C_NUMBER_MODE, 231 hljs.QUOTE_STRING_MODE, 232 hljs.APOS_STRING_MODE, 233 hljs.BACKSLASH_ESCAPE, 234 { 235 className: 'preprocessor', 236 begin: '#', end: '$' 237 } 238 ] 239}; 240