⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sql-parser.js

📁 原名JSPackager
💻 JS
字号:
function CPPParser(source){
  this.initialize(source);
}
$JSI.extend(CPPParser,SourceParser);

CPPParser.prototype.keywordsRegexp = SourceParser.buildKeywordsRegexp([
//datatypes
'HRGN','HRSRC','HSZ','HWINSTA','HWND','INT','INT_PTR','INT32','INT64','LANGID','LCID','LCTYPE',
'LGRPID','LONG','LONGLONG','LONG_PTR','LONG32','LONG64','LPARAM','LPBOOL','LPBYTE','LPCOLORREF',
'LPCSTR','LPCTSTR','LPCVOID','LPCWSTR','LPDWORD','LPHANDLE','LPINT','LPLONG','LPSTR','LPTSTR',
'LPVOID','LPWORD','LPWSTR','LRESULT','PBOOL','PBOOLEAN','PBYTE','PCHAR','PCSTR','PCTSTR','PCWSTR',
'PDWORDLONG','PDWORD_PTR','PDWORD32','PDWORD64','PFLOAT','PHALF_PTR','PHANDLE','PHKEY','PINT',
'PINT_PTR','PINT32','PINT64','PLCID','PLONG','PLONGLONG','PLONG_PTR','PLONG32','PLONG64','POINTER_32',
'POINTER_64','PSHORT','PSIZE_T','PSSIZE_T','PSTR','PTBYTE','PTCHAR','PTSTR','PUCHAR','PUHALF_PTR',
'PUINT','PUINT_PTR','PUINT32','PUINT64','PULONG','PULONGLONG','PULONG_PTR','PULONG32','PULONG64',
'PUSHORT','PVOID','PWCHAR','PWORD','PWSTR','SC_HANDLE','SC_LOCK','SERVICE_STATUS_HANDLE','SHORT', 
'SIZE_T','SSIZE_T','TBYTE','TCHAR','UCHAR','UHALF_PTR','UINT','UINT_PTR','UINT32','UINT64','ULONG',
'ULONGLONG','ULONG_PTR','ULONG32','ULONG64','USHORT','USN','VOID','WCHAR','WORD','WPARAM','WPARAM','WPARAM',
'char','bool','short','int','__int32','__int64','__int8','__int16','long','float','double','__wchar_t',
'clock_t','_complex','_dev_t','_diskfree_t','div_t','ldiv_t','_exception','_EXCEPTION_POINTERS',
'FILE','_finddata_t','_finddatai64_t','_wfinddata_t','_wfinddatai64_t','__finddata64_t',
'__wfinddata64_t','_FPIEEE_RECORD','fpos_t','_HEAPINFO','_HFILE','lconv','intptr_t',
'jmp_buf','mbstate_t','_off_t','_onexit_t','_PNH','ptrdiff_t','_purecall_handler',
'sig_atomic_t','size_t','_stat','__stat64','_stati64','terminate_function',
'time_t','__time64_t','_timeb','__timeb64','tm','uintptr_t','_utimbuf',
'va_list','wchar_t','wctrans_t','wctype_t','wint_t','signed',

//keywords
'break','case','catch','class','const','__finally','__exception','__try',
'const_cast','continue','private','public','protected','__declspec', 
'default','delete','deprecated','dllexport','dllimport','do','dynamic_cast', 
'else','enum','explicit','extern','if','for','friend','goto','inline', 
'mutable','naked','namespace','new','noinline','noreturn','nothrow', 
'register','reinterpret_cast','return','selectany', 
'sizeof','static','static_cast','struct','switch','template','this', 
'thread','throw','true','false','try','typedef','typeid','typename','union', 
'using','uuid','virtual','void','volatile','whcar_t','while']
);

CPPParser.prototype.partitionsRegexp = SourceParser.buildPartitionsRegexp(
[
      '/\\*(?:[^\\*]|\\*[^/])*\\*/'      //muti-comment
      ,'//.*$'                    //single-comment
      ,'"(?:\\\\.|[^"\\n\\r])*"'  //string
      ,"'(?:\\\\.|[^'\\n\\r])*'"  //string : char
      ,'^\\s*#.*'             //process
]);
dp.sh.Brushes.Sql = function()
{
	var funcs	=	'abs avg case cast coalesce convert count current_timestamp ' +
					'current_user day isnull left lower month nullif replace right ' +
					'session_user space substring sum system_user upper user year';

	var keywords =	'absolute action add after alter as asc at authorization begin bigint ' +
					'binary bit by cascade char character check checkpoint close collate ' +
					'column commit committed connect connection constraint contains continue ' +
					'create cube current current_date current_time cursor database date ' +
					'deallocate dec decimal declare default delete desc distinct double drop ' +
					'dynamic else end end-exec escape except exec execute false fetch first ' +
					'float for force foreign forward free from full function global goto grant ' +
					'group grouping having hour ignore index inner insensitive insert instead ' +
					'int integer intersect into is isolation key last level load local max min ' +
					'minute modify move name national nchar next no numeric of off on only ' +
					'open option order out output partial password precision prepare primary ' +
					'prior privileges procedure public read real references relative repeatable ' +
					'restrict return returns revoke rollback rollup rows rule schema scroll ' +
					'second section select sequence serializable set size smallint static ' +
					'statistics table temp temporary then time timestamp to top transaction ' +
					'translation trigger true truncate uncommitted union unique update values ' +
					'varchar varying view when where with work';

	var operators =	'all and any between cross in join like not null or outer some';

	this.regexList = [
		{ regex: new RegExp('--(.*)$', 'gm'),						css: 'comment' },			// one line and multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'string' },			// double quoted strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },			// single quoted strings
		{ regex: new RegExp(this.GetKeywords(funcs), 'gmi'),		css: 'func' },				// functions
		{ regex: new RegExp(this.GetKeywords(operators), 'gmi'),	css: 'op' },				// operators and such
		{ regex: new RegExp(this.GetKeywords(keywords), 'gmi'),		css: 'keyword' }			// keyword
		];

	this.CssClass = 'dp-sql';
}

dp.sh.Brushes.Sql.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.Sql.Aliases	= ['sql'];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -