/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/
 *
 * This brush was originally created by Jonas Andersson <jonas@haksberg.net>
 * homepage:   http://jonas.haksberg.net/
 * brush page: <unknown>
 */

SyntaxHighlighter.brushes.MPASM = function()
{
	var instr =	"ADDCF ADDDCF ADDLW ADDWF ADDWFC ADDWL ANDLW ANDWF " +
                "B BC BCF BDC BN BNC BNDC BNN BNOV BNZ BOV BRA BSF BTFSC BTFSS BTFXX BTG BZ " +
                "CALL CLRC CLRDC CLRF CLRW CLRWD CLRWDT CLRZ COMF CPFSEQ CPFSGT CPFSLT " +
                "DAW DCFSNZ DECF DECFSZ DECSZ " +
                "GOTO " +
                "INCF INCFSZ INDF INFSNZ IORLW IORWF " +
                "LCALL LFSR LGOTO LRF " +
                "MOVF MOVFF MOVFP MOVFW MOVLB MOVLP MOVLW MOVPF MOVWF MULLW MULWF " +
                "NEGF NEGW NOP " +
                "OPTIOIN OPTION " +
                "POP PUSH " +
                "RCALL RESET RETFIE RETLW RETURN RLCF RLF RLNCF RRCF RRF RRNCF " +
                "SETC SETDC SETF SETZ SKPC SKPDC SKPNDC SKPNZ SKPZ SLEEP SUBCF SUBDCF SUBFWB SUBLW SUBWF SUBWFB SWAPF " +
                "TABLRD TABLWT TLRD TLWT TRIS TSTF TSTFSZ TSTFXZ " +
                "XORLW XORWF";
					
	var macro =	"__BADRAM BANKISEL BANKSEL CBLOCK CODE __CONFIG CONSTANT DA DATA DB DE DT DW ENDC EQU " +
	            "EXTERN FILL GLOBAL IDATA __IDLOCS __MAXRAM ORG PAGE PAGESEL PROCESSOR RADIX RES UDATA UDATA_ACS UDATA_OVR UDATA_SHR VARIABLE " +
	            "D['] H['] O['] A['] B['] ELSE END ENDIF ENDM ENDW ERROR ERRORLEVEL EXPAND EXITM IF IFDEF IFNDEF " +
                "LIST  list LOCAL MACRO MESSG NOEXPAND NOLIST SET PACE SUBTITLE TITLE WHILE";
    
    this.regexList = [
		{ regex: /;.*$/gmi,										css: "comments" },			// one line comments
		{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,	css: "string" },			// strings
		{ regex: /^ *#.*/gmi,									css: "preprocessor" },
		{ regex: new RegExp(this.getKeywords(instr), 'gmi'),	css: "keyword bold" },
		{ regex: new RegExp(this.getKeywords(macro), 'gmi'),	css: "color1 bold" },
		{ regex: /TBLRD[*]/gmi,									css: "keyword bold" },
		{ regex: /TBLRD[*][+]/gmi,								css: "keyword bold" },
		{ regex: /TBLRD[*][-]/gmi,								css: "keyword bold" },
		{ regex: /TBLRD[+][*]/gmi,								css: "keyword bold" },
		{ regex: /TBLWT[*]/gmi,									css: "keyword bold" },
		{ regex: /TBLWT[*][+]/gmi,								css: "keyword bold" },
		{ regex: /TBLWT[*][-]/gmi,								css: "keyword bold" },
		{ regex: /TBLWT[+][*]/gmi,								css: "keyword bold" }
	];
};

SyntaxHighlighter.brushes.MPASM.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.MPASM.aliases	= ["pic", "mpasm"];
