/**
 * SyntaxHighlighter for MSX BASIC keywors
 * author :	bois
 * 			http://www.boiscreative.com/
 * date :	2009/05/11
 * varsion :0.00.01
 * バグがあるかもしれませんが、自由に使って構いません。
 */
SyntaxHighlighter.brushes.Msx = function()
{
	var keywords =	'ABS AND ASC ATN AUTO BASE BEEP BLOAD BSAVE CALL ' +
					'CDBL CINT CIRCLE CLEAR CLOAD CLOSE CLS CMD COLOR=NEW COLOR= COLOR CONT ' +
					'COPY COS CSAVE CSNG CSRLIN CVD CVI CVS DATA DEF DEFDBL DEFINT ' +
					'DEFSNG DEFSTR DELETE DIM DRAW DSKF ELSE END EOF EQV ' +
					'ERASE ERL ERR ERROR EXP FIELD FILES FIX FN FOR FPOS FRE GET GOSUB ' +
					'GOTO IF IMP INP INPUT INSTR INT IPL KEY KILL LEN ' +
					'LET LFILES LINE LIST LLIST LOAD LOC LOCATE LOF LOG LPOS LPRINT LSET ' +
					'MAX MERGE MOD MOTOR NAME NEW NEXT NOT OFF ON ' +
					'OPEN OR OUT PAD PAINT PDL PEEK PLAY POINT POKE POS PRESET PRINT PSET ' +
					'PUT READ REM RENUM RESTORE RESUME RETURN RND RSET RUN SAVE ' +
					'SCREEN SET SGN SIN SOUND SPC SPRITE SQR STEP STICK STOP ' +
					'STRIG SWAP TAB TAN THEN TIME TO TROFF TRON USING USR VAL ' +
					'VARPTR VDP VPEEK VPOKE WAIT WIDTH XOR DATE KANJI ' +
					'MEMINI MFILES MKILL MNAME PAGE PROMPT TITLE VIDEO SCROLL PAUSE ' +
					'PCMPLAY PCMREC CHDIR CHDRV MKDIR RMDIR RAMDISK SYSTEM AKCNV ANK ' +
					'JIS KACNV KANJI KEXT KINSTR KLEN KMID KNJ KTYPE PALETTE SJIS AUDREG ' +
					'BGM MUSIC PITCH STOPM TEMPER TRANSPOSE VOICE VOICE COMBRAKE ' +
					'COM COMHELP COMINI COMOFF COMON COMPROTOCOL COMSTAT COMSTOP ' +
					'COMTERM DIAL DIALC DTMF LINESEL NETCARRIER NETCONFIG NET NETHOOK ' +
					'NETINI NETMODEM NETOFF NETON NETSPK NETSTAT NETSTOP';

	this.regexList = [
		{ regex: /('|REM).*$/gm,								css: 'comments' },			// one line comments
		{ regex: /^\d+/gm,										css: 'color1' },			// line no
		{ regex: /"[^"\n]*$/gm,									css: 'string' },			// strings not closed
		{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,	css: 'string' },			// strings
		{ regex: /(ATTR|BIN|CHR|DSKI|DSKO|HEX|INKEY|LEFT|MID|MKD|MKI|MKS|OCT|RIGHT|SPACE|STRING|STR|SPRITE)\$/gm,
																css: 'keyword'},			// msx basic keywords
		{ regex: /[A-Z][A-Z0-9]?\$/gm,							css: 'variable' },			// string variable
		{ regex: /(_|CALL)\s*[A-Z]+/gm,								css: 'keyword' },			// call
		{ regex: new RegExp(this.getKeywords(keywords), 'gm'),	css: 'keyword' }			// msx basic keywords
		];

	this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
};

SyntaxHighlighter.brushes.Msx.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Msx.aliases	= ['msx'];
