rsl function

Mode rsl(
  1. Highlight hljs
)

Highlight.js language definition for rsl.

Implementation

Mode rsl(Highlight hljs) {
  final Mode mode0 = Mode();
  mode0.begin = r'\\[\s\S]';
  mode0.relevance = 0;
  return Mode(
    name: r'RenderMan RSL',
    keywords: {
      r'keyword': [
        r'while',
        r'for',
        r'if',
        r'do',
        r'return',
        r'else',
        r'break',
        r'extern',
        r'continue',
      ],
      r'built_in': [
        r'abs',
        r'acos',
        r'ambient',
        r'area',
        r'asin',
        r'atan',
        r'atmosphere',
        r'attribute',
        r'calculatenormal',
        r'ceil',
        r'cellnoise',
        r'clamp',
        r'comp',
        r'concat',
        r'cos',
        r'degrees',
        r'depth',
        r'Deriv',
        r'diffuse',
        r'distance',
        r'Du',
        r'Dv',
        r'environment',
        r'exp',
        r'faceforward',
        r'filterstep',
        r'floor',
        r'format',
        r'fresnel',
        r'incident',
        r'length',
        r'lightsource',
        r'log',
        r'match',
        r'max',
        r'min',
        r'mod',
        r'noise',
        r'normalize',
        r'ntransform',
        r'opposite',
        r'option',
        r'phong',
        r'pnoise',
        r'pow',
        r'printf',
        r'ptlined',
        r'radians',
        r'random',
        r'reflect',
        r'refract',
        r'renderinfo',
        r'round',
        r'setcomp',
        r'setxcomp',
        r'setycomp',
        r'setzcomp',
        r'shadow',
        r'sign',
        r'sin',
        r'smoothstep',
        r'specular',
        r'specularbrdf',
        r'spline',
        r'sqrt',
        r'step',
        r'tan',
        r'texture',
        r'textureinfo',
        r'trace',
        r'transform',
        r'vtransform',
        r'xcomp',
        r'ycomp',
        r'zcomp',
      ],
      r'type': [r'matrix', r'float', r'color', r'point', r'normal', r'vector'],
    },
    illegal: r'</',
    contains: [
      Mode(
        scope: r'comment',
        begin: r'//',
        end: r'$',
        contains: [
          Mode(
            scope: r'doctag',
            begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
            end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
            excludeBegin: true,
            relevance: 0,
          ),
          Mode(
            begin:
                r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
          ),
        ],
      ),
      Mode(
        scope: r'comment',
        begin: r'/\*',
        end: r'\*/',
        contains: [
          Mode(
            scope: r'doctag',
            begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
            end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
            excludeBegin: true,
            relevance: 0,
          ),
          Mode(
            begin:
                r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
          ),
        ],
      ),
      Mode(
        scope: r'string',
        begin: r'"',
        end: r'"',
        illegal: r'\n',
        contains: [mode0],
      ),
      Mode(
        scope: r'string',
        begin: r"'",
        end: r"'",
        illegal: r'\n',
        contains: [mode0],
      ),
      Mode(
        scope: r'number',
        begin:
            r'(-?)(\b0[xX][a-fA-F0-9]+|(\b\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?)',
        relevance: 0,
      ),
      Mode(scope: r'meta', begin: r'#', end: r'$'),
      Mode(
        match: [
          r'(surface|displacement|light|volume|imager)',
          r'\s+',
          r'[a-zA-Z]\w*',
        ],
        scope: {1: r'keyword', 3: r'title.class'},
      ),
      Mode(beginKeywords: r'illuminate illuminance gather', end: r'\('),
    ],
  );
}