class Rouge::Lexers::Magik
def self.character
def self.character @character ||= /%u[0-9a-z]{4}|%[^\s]+/i end
def self.decimal
def self.decimal @decimal ||= /\.#{Magik.digits}/ end
def self.digits
def self.digits @digits ||= /[0-9]+/ end
def self.exponent
def self.exponent @exponent ||= /(e|&)[+-]?#{Magik.digits}/i end
def self.global_ref
def self.global_ref @global_ref ||= /@[\s]*#{Magik.identifier}:#{Magik.identifier}/ end
def self.identifier
def self.identifier @identifier ||= /(?:#{Magik.simple_identifier}|#{Magik.piped_identifier})+/i end
def self.keywords
def self.keywords @keywords ||= %w( _package _pragma _block _endblock _handling _default _protect _protection _endprotect _try _with _when _endtry _catch _endcatch _throw _lock _endlock _if _then _elif _else _endif _for _over _while _loop _finally _endloop _loopbody _continue _leave _return _class _local _constant _recursive _global _dynamic _import _private _iter _abstract _method _endmethod _proc _endproc _gather _scatter _allresults _optional _thisthread _self _clone _super _primitive _unset _true _false _maybe _is _isnt _not _and _or _xor _cf _andif _orif _div _mod ) end
def self.label
def self.label @label = /@[\s]*#{Magik.identifier}/ end
def self.number
def self.number @number = /#{Magik.digits}(#{Magik.radix}|#{Magik.exponent}|#{Magik.decimal})*/ end
def self.package_identifier
def self.package_identifier @package_identifier ||= /#{Magik.identifier}:#{Magik.identifier}/ end
def self.piped_identifier
def self.piped_identifier @piped_identifier ||= /\|[^\|\n]*\|/ end
def self.radix
def self.radix @radix ||= /r[0-9a-z]/i end
def self.simple_identifier
def self.simple_identifier @simple_identifier ||= /(?>(?:[a-z0-9_!?]|\\.)+)/i end
def self.string_double
def self.string_double @string_double ||= /"[^"\n]*?"/ end
def self.string_single
def self.string_single @string_single ||= /'[^'\n]*?'/ end
def self.symbol
def self.symbol @symbol ||= /:#{Magik.identifier}/i end