File: shBrushAsmZ80.js - Tab length: 1 2 4 8 - Lines: on off - No wrap: on off

;(function()
{
    // CommonJS
    typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;

    function Brush()
    {

        var datatypes = '.addinstr .block .byte .db .dw .echo .end .error .fill .list .nolist .option .org .seek .show .word';

        var keywords = 'af bc de hl ix iy nc nz pe a b c d e h i l m p r z sp po';

        var functions = 'adc add and bcall bcallc bcallnc bcallnz bcallz bit bjump bjumpc bjumpnc bjumpnz bjumpz call ccf cp cpd cpdr cpi cpir cpl daa dec di djnz ei ex exx halt im in inc ind indr ini inir jp jr ld ldd lddr ldi dir neg nop or otdr otir out outd outi pop push res ret reti retn rl rla rlc rlca rld rr rra rrc rrca rrd rst sbc scf set sla sra slr sub xor';

        this.regexList = [
            { regex: SyntaxHighlighter.regexLib.singleLineCComments,    css: 'comments' },          // one line comments
            { regex: SyntaxHighlighter.regexLib.multiLineCComments,     css: 'comments' },          // multiline comments
            { regex: SyntaxHighlighter.regexLib.doubleQuotedString,     css: 'string' },            // strings
            { regex: SyntaxHighlighter.regexLib.singleQuotedString,     css: 'string' },            // strings
            { regex: /^ *#.*/gm,                                        css: 'preprocessor' },
            { regex: new RegExp(this.getKeywords(datatypes), 'gm'),     css: 'color1 bold' },
            { regex: new RegExp(this.getKeywords(functions), 'gm'),     css: 'functions bold' },
            { regex: new RegExp(this.getKeywords(keywords), 'gm'),      css: 'keyword bold' }
            ];
    };

    Brush.prototype = new SyntaxHighlighter.Highlighter();
    Brush.aliases   = ['asm', 'z80'];

    SyntaxHighlighter.brushes.Cpp = Brush;

    // CommonJS
    typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
})();