Attachment 'vala.py'
Download 1 # -*- coding: iso-8859-1 -*-
2 """
3 MoinMoin - Vala Source Parser
4
5 @copyright: 2009 Frederik
6 @license: GNU GPL, see COPYING for details.
7
8 css:
9
10 pre.valaarea { font-style: sans-serif; color: #000000; }
11
12 pre.valaarea span.ID { color: #000000; }
13 pre.valaarea span.Char { color: #004080; }
14 pre.valaarea span.Comment { color: #808080; }
15 pre.valaarea span.Number { color: #008080; font-weight: bold; }
16 pre.valaarea span.String { color: #004080; }
17 pre.valaarea span.SPChar { color: #0000C0; }
18 pre.valaarea span.ResWord { color: #4040ff; font-weight: bold; }
19 pre.valaarea span.ConsWord { color: #008080; font-weight: bold; }
20 pre.valaarea span.ResWord2 { color: #0080ff; font-weight: bold; }
21 pre.valaarea span.Special { color: #0000ff; }
22 pre.valaarea span.Preprc { color: #804000; }
23
24 """
25
26 from MoinMoin.parser._ParserBase import ParserBase
27
28 Dependencies = ['user'] # the "Toggle line numbers link" depends on user's language
29
30 class Parser(ParserBase):
31
32 parsername = "ColorizedVala"
33 extensions = ['.vala', '.vapi']
34 Dependencies = Dependencies
35
36 def setupRules(self):
37 ParserBase.setupRules(self)
38
39 self.addRulePair("Comment", r"/[*]", r"[*]/")
40 self.addRule("Comment", r"//.*$")
41 self.addRulePair("String", r'"""', r'"""')
42 self.addRulePair("String", r'"', r'[^\\]"')
43 self.addRule("Char", r"'\\.'|'[^\\]'")
44 self.addRule("Number", r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?")
45 self.addRule("Preprc", r"^\s*#.*$")
46 self.addRule("ID", r"[a-zA-Z_][0-9a-zA-Z_]*")
47 self.addRule("SPChar", r"[~!%^&*()+=|\[\]:;,.<>/?{}-]")
48
49 reserved_words = ['abstract', 'as', 'async', 'base', 'break', 'case',
50 'catch', 'class', 'const', 'construct', 'continue', 'default',
51 'delegate', 'delete', 'do', 'dynamic', 'else', 'ensures', 'enum',
52 'errordomain', 'extern', 'finally', 'for', 'foreach', 'get', 'if', 'in',
53 'inline', 'interface', 'internal', 'is', 'lock', 'new', 'out',
54 'override', 'owned', 'private', 'protected', 'public', 'ref',
55 'requires', 'return', 'set', 'signal', 'sizeof', 'static', 'struct',
56 'switch', 'this', 'throw', 'throws', 'try', 'typeof', 'unowned',
57 'value', 'var', 'virtual', 'void', 'volatile', 'weak', 'while',
58 'yield']
59
60 self.addReserved(reserved_words)
61
62 reserved_words2 = ['namespace', 'using']
63
64 special_words = ['bool', 'char', 'double', 'float', 'int', 'int8',
65 'int16', 'int32', 'int64', 'long', 'short', 'size_t', 'ssize_t',
66 'string', 'uchar', 'uint', 'uint16', 'uint32', 'uint64', 'ulong',
67 'unichar', 'ushort']
68
69 constant_words = ['true', 'false', 'null']
70
71 self.addConstant(constant_words)
72
73 self.addWords(reserved_words2, 'ResWord2')
74 self.addWords(special_words, 'Special')
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.