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.
  • [get | view] (2021-02-25 10:01:27, 2.8 KB) [[attachment:vala.py]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.