1
# -*- coding: iso-8859-1 -*-
3
MoinMoin - Pascal Source Parser
5
@copyright: 2004-2005 by Johannes Berg <johannes@sipsolutions.net>
6
@license: GNU GPL, see COPYING for details.
9
from MoinMoin.util.ParserBase import ParserBase
13
class Parser(ParserBase):
15
parsername = 'ColorizedPascal'
19
def __init__(self, raw, request, **kw):
20
ParserBase.__init__(self,raw,request,**kw)
24
ParserBase.setupRules(self)
26
self.addRulePair("Comment","\(\*","\*\)")
27
self.addRulePair("Comment","\{","\}")
28
self.addRule("Comment","//.*$")
29
self.addRulePair("String",'\'','\'')
30
self.addRule("Char",r"'\\.'|#[a-f0-9][a-f0-9]")
31
self.addRule("Number",r"[0-9](\.[0-9]*)?(eE[+-][0-9])?|\$[0-9a-fA-F]+")
32
self.addRule("ID","[a-zA-Z_][0-9a-zA-Z_]*")
33
self.addRule("SPChar",r"[~!%^&*()+=|\[\]:;,.<>/?{}-]")
35
reserved_words = ['class','interface','set','uses','unit',
36
'byte','integer','longint','float','double',
37
'extended','char','shortint','boolean',
38
'var','const','private','public','protected',
39
'new','this','super','abstract','native',
40
'synchronized','transient','volatile','strictfp',
41
'if','else','while','for','do','case','default',
42
'try','except','finally','raise','continue','break',
43
'begin','end','type','class','implementation',
44
'procedure','function','constructor','destructor']
46
self.addReserved(reserved_words)
48
constant_words = ['true','false','nil']
50
self.addConstant(constant_words)