penguin/AstroJS

Javascript framework for my blog

botanjs/src/Libraries/SyntaxHighlighter/Brush/Erlang.js

raw ยท 1688 bytes

/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/SyntaxHighlighter
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
 *
 */
;(function()
{
	var ns = __namespace( "Libraries.SyntaxHighlighter.Brush" );

    /** @type {Libraries.SyntaxHighlighter} */
    var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );

    /** @type {typeof Libraries.SyntaxHighlighterBrush} **/
	var Brush = function()
	{
		// Contributed by Jean-Lou Dupont
		// http://jldupont.blogspot.com/2009/06/erlang-syntax-highlighter.html  

		// According to: http://erlang.org/doc/reference_manual/introduction.html#1.5
		var keywords = 'after and andalso band begin bnot bor bsl bsr bxor '+
			'case catch cond div end fun if let not of or orelse '+
			'query receive rem try when xor'+
			// additional
			' module export import define';

		this.regexList = [
			{ "regex": new RegExp("[A-Z][A-Za-z0-9_]+", 'g'), 			"css": 'constants' },
			{ "regex": new RegExp("\\%.+", 'gm'), 						"css": 'comments' },
			{ "regex": new RegExp("\\?[A-Za-z0-9_]+", 'g'), 				"css": 'preprocessor' },
			{ "regex": new RegExp("[a-z0-9_]+:[a-z0-9_]+", 'g'), 			"css": 'functions' },
			{ "regex": SyntaxHighlighter.regexLib.doubleQuotedString,		"css": 'string' },
			{ "regex": SyntaxHighlighter.regexLib.singleQuotedString,		"css": 'string' },
			{ "regex": new RegExp(this.getKeywords(keywords),	'gm'),		"css": 'keyword' }
			];
	};

	Brush.prototype	= new SyntaxHighlighter.Highlighter();
	Brush.aliases	= ['erl', 'erlang'];

	SyntaxHighlighter.brushes[ "Erland" ] = Brush;

	ns[ NS_EXPORT ]( EX_CLASS, "Erland", Brush );
})();