view MoinMoin/parser/ @ 3077:66d35649ca99

add 'percent' kw to getText (must be True when using result as left side of % operator), refactored some code, better comments (ported from 1.6)
author Thomas Waldmann <tw AT waldmann-edv DOT de>
date Fri, 22 Feb 2008 22:35:46 +0100
parents 71d89ce8b878
children 348c9b6e0033
line wrap: on
line source
# -*- coding: iso-8859-1 -*-
    MoinMoin - Java Source Parser

    @copyright: 2002 Taesu Pyo <>
    @license: GNU GPL, see COPYING for details.


from MoinMoin.parser._ParserBase import ParserBase

Dependencies = ['user'] # the "Toggle line numbers link" depends on user's language

class Parser(ParserBase):

    parsername = "ColorizedJava"
    extensions = ['.java']
    Dependencies = Dependencies

    def setupRules(self):

        self.addRulePair("Comment", "/[*]", "[*]/")
        self.addRule("Comment", "//.*$")
        self.addRulePair("String", '"', r'$|[^\\](\\\\)*"')
        self.addRule("Char", r"'\\.'|'[^\\]'")
        self.addRule("Number", r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?")
        self.addRule("ID", "[a-zA-Z_][0-9a-zA-Z_]*")
        self.addRule("SPChar", r"[~!%^&*()+=|\[\]:;,.<>/?{}-]")

        reserved_words = ['class', 'interface', 'enum', 'import', 'package',
        'byte', 'int', 'long', 'float', 'double', 'char', 'short', 'void', 'boolean',
        'static', 'final', 'const', 'private', 'public', 'protected',
        'new', 'this', 'super', 'abstract', 'native', 'synchronized', 'transient', 'volatile', 'strictfp',
        'extends', 'implements', 'if', 'else', 'while', 'for', 'do', 'switch', 'case', 'default', 'instanceof',
        'try', 'catch', 'finally', 'throw', 'throws', 'return', 'continue', 'break']


        constant_words = ['true', 'false', 'null']