import color, mode from lex import Grammar, PatternRule, RegionRule from mode.perl import StringGrammar, PerlGrammar class IperlGrammar(Grammar): rules = [ RegionRule(r'string', r'"', StringGrammar, r'"'), RegionRule(r'string', r"'", StringGrammar, r"'"), RegionRule(r'iperl_input', r'^(?:>>>|\.\.>)', PerlGrammar, '\n$'), PatternRule(r'iperl_reserved', r'undef'), ] class Iperl(mode.Fundamental): modename = 'IPerl' grammar = IperlGrammar() colors = { 'iperl_input.start': ('red', 'default', 'bold'), 'iperl_reserved': ('magenta', 'default', 'bold'), } def __init__(self, w): mode.Fundamental.__init__(self, w) self.add_bindings('iperl-start', ('M-e',)) install = Iperl.install