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