vis

a vi-like editor based on Plan 9's structural regular expressions

git clone https://9o.is/git/vis.git

cuda.lua

(3729B)


      1 -- Copyright 2006-2025 Mitchell. See LICENSE.
      2 -- CUDA LPeg lexer.
      3 
      4 local lexer = lexer
      5 local P, S = lpeg.P, lpeg.S
      6 
      7 local lex = lexer.new(..., {inherit = lexer.load('cpp')})
      8 
      9 -- Word lists.
     10 lex:set_word_list(lexer.KEYWORD, '__global__ __host__ __device__ __constant__ __shared__', true)
     11 
     12 lex:set_word_list(lexer.TYPE, {
     13 	'uint', 'int1', 'uint1', 'int2', 'uint2', 'int3', 'uint3', 'int4', 'uint4', 'float1', 'float2',
     14 	'float3', 'float4', 'char1', 'char2', 'char3', 'char4', 'uchar1', 'uchar2', 'uchar3', 'uchar4',
     15 	'short1', 'short2', 'short3', 'short4', 'dim1', 'dim2', 'dim3', 'dim4'
     16 }, true)
     17 
     18 lex:set_word_list(lexer.FUNCTION_BUILTIN, {
     19 	-- Atom.
     20 	'atomicAdd', 'atomicAnd', 'atomicCAS', 'atomicDec', 'atomicExch', 'atomicInc', 'atomicMax',
     21 	'atomicMin', 'atomicOr', 'atomicSub', 'atomicXor', --
     22 	-- Dev.
     23 	'tex1D', 'tex1Dfetch', 'tex2D', '__float_as_int', '__int_as_float', '__float2int_rn',
     24 	'__float2int_rz', '__float2int_ru', '__float2int_rd', '__float2uint_rn', '__float2uint_rz',
     25 	'__float2uint_ru', '__float2uint_rd', '__int2float_rn', '__int2float_rz', '__int2float_ru',
     26 	'__int2float_rd', '__uint2float_rn', '__uint2float_rz', '__uint2float_ru', '__uint2float_rd',
     27 	'__fadd_rz', '__fmul_rz', '__fdividef', '__mul24', '__umul24', '__mulhi', '__umulhi', '__mul64hi',
     28 	'__umul64hi', 'min', 'umin', 'fminf', 'fmin', 'max', 'umax', 'fmaxf', 'fmax', 'abs', 'fabsf',
     29 	'fabs', 'sqrtf', 'sqrt', 'sinf', '__sinf', 'sin', 'cosf', '__cosf', 'cos', 'sincosf', '__sincosf',
     30 	'expf', '__expf', 'exp', 'logf', '__logf', 'log', --
     31 	-- Runtime.
     32 	'cudaBindTexture', 'cudaBindTextureToArray', 'cudaChooseDevice', 'cudaConfigureCall',
     33 	'cudaCreateChannelDesc', 'cudaD3D10GetDevice', 'cudaD3D10MapResources',
     34 	'cudaD3D10RegisterResource', 'cudaD3D10ResourceGetMappedArray', 'cudaD3D10ResourceGetMappedPitch',
     35 	'cudaD3D10ResourceGetMappedPointer', 'cudaD3D10ResourceGetMappedSize',
     36 	'cudaD3D10ResourceGetSurfaceDimensions', 'cudaD3D10ResourceSetMapFlags',
     37 	'cudaD3D10SetDirect3DDevice', 'cudaD3D10UnmapResources', 'cudaD3D10UnregisterResource',
     38 	'cudaD3D9GetDevice', 'cudaD3D9GetDirect3DDevice', 'cudaD3D9MapResources',
     39 	'cudaD3D9RegisterResource', 'cudaD3D9ResourceGetMappedArray', 'cudaD3D9ResourceGetMappedPitch',
     40 	'cudaD3D9ResourceGetMappedPointer', 'cudaD3D9ResourceGetMappedSize',
     41 	'cudaD3D9ResourceGetSurfaceDimensions', 'cudaD3D9ResourceSetMapFlags',
     42 	'cudaD3D9SetDirect3DDevice', 'cudaD3D9UnmapResources', 'cudaD3D9UnregisterResource',
     43 	'cudaEventCreate', 'cudaEventDestroy', 'cudaEventElapsedTime', 'cudaEventQuery',
     44 	'cudaEventRecord', 'cudaEventSynchronize', 'cudaFree', 'cudaFreeArray', 'cudaFreeHost',
     45 	'cudaGetChannelDesc', 'cudaGetDevice', 'cudaGetDeviceCount', 'cudaGetDeviceProperties',
     46 	'cudaGetErrorString', 'cudaGetLastError', 'cudaGetSymbolAddress', 'cudaGetSymbolSize',
     47 	'cudaGetTextureAlignmentOffset', 'cudaGetTextureReference', 'cudaGLMapBufferObject',
     48 	'cudaGLRegisterBufferObject', 'cudaGLSetGLDevice', 'cudaGLUnmapBufferObject',
     49 	'cudaGLUnregisterBufferObject', 'cudaLaunch', 'cudaMalloc', 'cudaMalloc3D', 'cudaMalloc3DArray',
     50 	'cudaMallocArray', 'cudaMallocHost', 'cudaMallocPitch', 'cudaMemcpy', 'cudaMemcpy2D',
     51 	'cudaMemcpy2DArrayToArray', 'cudaMemcpy2DFromArray', 'cudaMemcpy2DToArray', 'cudaMemcpy3D',
     52 	'cudaMemcpyArrayToArray', 'cudaMemcpyFromArray', 'cudaMemcpyFromSymbol', 'cudaMemcpyToArray',
     53 	'cudaMemcpyToSymbol', 'cudaMemset', 'cudaMemset2D', 'cudaMemset3D', 'cudaSetDevice',
     54 	'cudaSetupArgument', 'cudaStreamCreate', 'cudaStreamDestroy', 'cudaStreamQuery',
     55 	'cudaStreamSynchronize', 'cudaThreadExit', 'cudaThreadSynchronize', 'cudaUnbindTexture'
     56 }, true)
     57 
     58 lex:set_word_list(lexer.CONSTANT_BUILTIN, 'gridDim blockIdx blockDim threadIdx', true)
     59 
     60 lexer.property['scintillua.comment'] = '//'
     61 
     62 return lex