1. <lexer>
    
  2.   <config>
    
  3.     <name>POVRay</name>
    
  4.     <alias>pov</alias>
    
  5.     <filename>*.pov</filename>
    
  6.     <filename>*.inc</filename>
    
  7.     <mime_type>text/x-povray</mime_type>
    
  8.   </config>
    
  9.   <rules>
    
  10.     <state name="root">
    
  11.       <rule pattern="/\*[\w\W]*?\*/">
    
  12.         <token type="CommentMultiline"/>
    
  13.       </rule>
    
  14.       <rule pattern="//.*\n">
    
  15.         <token type="CommentSingle"/>
    
  16.       </rule>
    
  17.       <rule pattern="(?s)&#34;(?:\\.|[^&#34;\\])+&#34;">
    
  18.         <token type="LiteralStringDouble"/>
    
  19.       </rule>
    
  20.       <rule pattern="#(statistics|include|version|declare|default|warning|define|elseif|ifndef|switch|fclose|render|fopen|undef|error|debug|while|local|macro|range|ifdef|break|write|else|case|read|for|end|if)\b">
    
  21.         <token type="CommentPreproc"/>
    
  22.       </rule>
    
  23.       <rule pattern="\b(atmospheric_attenuation|cylindrical_mapping|spherical_mapping|max_intersections|quadratic_spline|ultra_wide_angle|low_error_factor|distance_maximum|recursion_limit|irid_wavelength|volume_rendered|max_trace_level|global_settings|number_of_waves|vol_with_light|planar_mapping|gray_threshold|nearest_count|minimum_reuse|test_camera_4|assumed_gamma|ambient_light|volume_object|test_camera_3|max_iteration|linear_spline|fade_distance|test_camera_2|falloff_angle|test_camera_1|triangle_wave|orthographic|linear_sweep|hypercomplex|cubic_spline|eccentricity|material_map|vaxis_rotate|scallop_wave|quick_colour|aa_threshold|blur_samples|conic_sweep|error_bound|interpolate|file_exists|attenuating|quick_color|texture_map|focal_point|box_mapping|pigment_map|perspective|water_level|adc_bailout|hf_gray_16|use_colour|clipped_by|turb_depth|reflection|atmosphere|phong_size|turbulence|area_light|fog_offset|vnormalize|normal_map|sky_sphere|fade_power|brick_size|colour_map|background|statistics|brilliance|brightness|scattering|confidence|agate_turb|looks_like|quaternion|bounded_by|shadowless|reciprocal|black_hole|refraction|no_shadow|spotlight|transform|translate|roughness|tightness|use_index|incidence|sine_wave|arc_angle|image_map|threshold|slope_map|direction|thickness|composite|component|color_map|panoramic|ramp_wave|radiosity|use_color|max_value|bump_size|precision|frequency|dust_type|hierarchy|strength|gradient|pattern1|fog_type|pattern2|specular|constant|flatness|control0|wrinkles|control1|pattern3|adaptive|caustics|bump_map|exponent|metallic|transmit|aa_level|point_at|map_type|emitting|variance|location|distance|aperture|texture|leopard|ripples|ambient|warning|diffuse|look_at|rainbow|radians|u_steps|quilted|degrees|average|vrotate|default|declare|inverse|samples|include|pigment|version|falloff|spotted|crackle|checker|spiral2|vlength|spiral1|fisheye|octaves|hexagon|fog_alt|granite|omnimax|glowing|v_steps|radius|concat|spiral|smooth|hollow|offset|normal|finish|bumpy1|filter|colour|mortar|rotate|lambda|bumpy3|bumpy2|strcmp|linear|switch|substr|repeat|vcross|strupr|strlen|strlwr|render|matrix|marble|radial|mandel|jitter|tiles|dents|atanh|break|range|track|asinh|brick|waves|bumps|atan2|sturm|debug|onion|rgbft|angle|right|tile2|crand|acosh|error|scale|alpha|while|false|agate|ifdef|phong|phase|clock|width|slice|omega|color|floor|count|green|atan|blue|bozo|seed|case|sqrt|rgbt|warp|rgbf|ceil|cosh|rand|cube|vdot|dust|else|flip|asin|type|tanh|halo|wood|true|open|once|acos|sinh|irid|max|mod|min|all|log|off|ior|tga|iff|pgm|ttf|asc|png|tan|gif|abs|fog|sys|exp|end|val|pot|pow|div|ppm|pwr|red|cos|chr|rgb|sqr|sin|yes|str|int|sky|if|no|on|pi|up|t)\b">
    
  24.         <token type="Keyword"/>
    
  25.       </rule>
    
  26.       <rule pattern="(smooth_triangle|superellipsoid|julia_fractal|bicubic_patch|light_source|height_field|intersection|difference|cylinder|triangle|polygon|quartic|quadric|camera|sphere|object|merge|plane|lathe|torus|prism|cubic|union|poly|mesh|disc|cone|text|blob|box|sor)\b">
    
  27.         <token type="NameBuiltin"/>
    
  28.       </rule>
    
  29.       <rule pattern="[\[\](){}&lt;&gt;;,]">
    
  30.         <token type="Punctuation"/>
    
  31.       </rule>
    
  32.       <rule pattern="[-+*/=]">
    
  33.         <token type="Operator"/>
    
  34.       </rule>
    
  35.       <rule pattern="\b(x|y|z|u|v)\b">
    
  36.         <token type="NameBuiltinPseudo"/>
    
  37.       </rule>
    
  38.       <rule pattern="[a-zA-Z_]\w*">
    
  39.         <token type="Name"/>
    
  40.       </rule>
    
  41.       <rule pattern="[0-9]+\.[0-9]*">
    
  42.         <token type="LiteralNumberFloat"/>
    
  43.       </rule>
    
  44.       <rule pattern="\.[0-9]+">
    
  45.         <token type="LiteralNumberFloat"/>
    
  46.       </rule>
    
  47.       <rule pattern="[0-9]+">
    
  48.         <token type="LiteralNumberInteger"/>
    
  49.       </rule>
    
  50.       <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
    
  51.         <token type="LiteralString"/>
    
  52.       </rule>
    
  53.       <rule pattern="\s+">
    
  54.         <token type="Text"/>
    
  55.       </rule>
    
  56.     </state>
    
  57.   </rules>
    
  58. </lexer>