/* Language: RenderMan RSL Author: Konstantin Evdokimenko Contributors: Shuen-Huei Guan Website: https://renderman.pixar.com/resources/RenderMan_20/shadingLanguage.html Category: graphics */ function rsl(hljs) { const BUILT_INS = [ "abs", "acos", "ambient", "area", "asin", "atan", "atmosphere", "attribute", "calculatenormal", "ceil", "cellnoise", "clamp", "comp", "concat", "cos", "degrees", "depth", "Deriv", "diffuse", "distance", "Du", "Dv", "environment", "exp", "faceforward", "filterstep", "floor", "format", "fresnel", "incident", "length", "lightsource", "log", "match", "max", "min", "mod", "noise", "normalize", "ntransform", "opposite", "option", "phong", "pnoise", "pow", "printf", "ptlined", "radians", "random", "reflect", "refract", "renderinfo", "round", "setcomp", "setxcomp", "setycomp", "setzcomp", "shadow", "sign", "sin", "smoothstep", "specular", "specularbrdf", "spline", "sqrt", "step", "tan", "texture", "textureinfo", "trace", "transform", "vtransform", "xcomp", "ycomp", "zcomp" ]; const TYPES = [ "matrix", "float", "color", "point", "normal", "vector" ]; const KEYWORDS = [ "while", "for", "if", "do", "return", "else", "break", "extern", "continue" ]; const CLASS_DEFINITION = { match: [ /(surface|displacement|light|volume|imager)/, /\s+/, hljs.IDENT_RE, ], scope: { 1: "keyword", 3: "title.class", } }; return { name: 'RenderMan RSL', keywords: { keyword: KEYWORDS, built_in: BUILT_INS, type: TYPES }, illegal: '