ExtensionCorba/idlclbr.py

Mon, 12 Dec 2022 16:43:08 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 12 Dec 2022 16:43:08 +0100
changeset 12
58b645cde6e3
child 32
cab6795a8df6
permissions
-rw-r--r--

Moved the IDL class browser to this plugin.

12
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2005 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Parse a CORBA IDL file and retrieve modules, interfaces, methods and
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 attributes.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 Parse enough of a CORBA IDL file to recognize module, interface and method
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 definitions and to find out the superclasses of an interface as well as its
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 attributes.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 It is based on the Python class browser found in this package.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 import os
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 import re
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 from eric7 import Utilities
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 from eric7.Utilities.ClassBrowsers import ClbrBaseClasses
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 _getnext = re.compile(
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 r"""
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 (?P<String>
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 " [^"\\\n]* (?: \\. [^"\\\n]*)* "
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 | (?P<Comment>
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 ^ [ \t]* // .*? $
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 |
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 ^ [ \t]* /\* .*? \*/
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 | (?P<Method>
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 ^
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 (?P<MethodIndent> [ \t]* )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 (?: oneway [ \t]+ )?
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 (?: [a-zA-Z0-9_:]+ | void ) [ \t]*
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 (?P<MethodName> [a-zA-Z_] [a-zA-Z0-9_]* )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 [ \t]*
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 \(
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 (?P<MethodSignature> [^)]*? )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 \);
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 [ \t]*
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 | (?P<Interface>
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 ^
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 (?P<InterfaceIndent> [ \t]* )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 (?: abstract [ \t]+ )?
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 interface [ \t]+
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 (?P<InterfaceName> [a-zA-Z_] [a-zA-Z0-9_]* )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 [ \t]*
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 (?P<InterfaceSupers> : [^{]+? )?
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 [ \t]* {
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 | (?P<Module>
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 ^
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 (?P<ModuleIndent> [ \t]* )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 module [ \t]+
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 (?P<ModuleName> [a-zA-Z_] [a-zA-Z0-9_]* )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 [ \t]* {
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 | (?P<Attribute>
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 ^
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 (?P<AttributeIndent> [ \t]* )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 (?P<AttributeReadonly> readonly [ \t]+ )?
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 attribute [ \t]+
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 (?P<AttributeType> (?: [a-zA-Z0-9_:]+ [ \t]+ )+ )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 (?P<AttributeNames> [^;]* )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 ;
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 | (?P<Begin>
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 [ \t]* {
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 | (?P<End>
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 [ \t]* } [ \t]* ;
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 )""",
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 re.VERBOSE | re.DOTALL | re.MULTILINE,
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 ).search
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 # function to replace comments
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 _commentsub = re.compile(r"""//[^\n]*\n|//[^\n]*$""").sub
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 # function to normalize whitespace
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 _normalize = re.compile(r"""[ \t]{2,}""").sub
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 class VisibilityMixin(ClbrBaseClasses.ClbrVisibilityMixinBase):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 Mixin class implementing the notion of visibility.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 def __init__(self):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 Constructor
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 self.setPublic()
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 class Module(ClbrBaseClasses.Module, VisibilityMixin):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 Class to represent a CORBA IDL module.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 def __init__(self, module, name, file, lineno):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 Constructor
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 @param module name of the module containing this module
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 @param name name of this module
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 @param file filename containing this module
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 @param lineno line number of the module definition
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 @type int
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 ClbrBaseClasses.Module.__init__(self, module, name, file, lineno)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 VisibilityMixin.__init__(self)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 class Interface(ClbrBaseClasses.Class, VisibilityMixin):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 Class to represent a CORBA IDL interface.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 def __init__(self, module, name, superClasses, file, lineno):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 Constructor
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 @param module name of the module containing this interface
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 @param name name of this interface
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 @param superClasses list of interface names this interface is
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 inherited from
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 @type list of str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 @param file filename containing this interface
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 @param lineno line number of the interface definition
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 @type int
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 ClbrBaseClasses.Class.__init__(self, module, name, superClasses, file, lineno)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 VisibilityMixin.__init__(self)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 class Function(ClbrBaseClasses.Function, VisibilityMixin):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 Class to represent a CORBA IDL function.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 def __init__(self, module, name, file, lineno, signature="", separator=","):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 Constructor
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 @param module name of the module containing this function
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 @param name name of this function
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 @param file filename containing this function
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 @param lineno line number of the function definition
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 @type int
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 @param signature parameter list of the function
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 @param separator string separating the parameters
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 ClbrBaseClasses.Function.__init__(
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 self, module, name, file, lineno, signature, separator
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 )
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 VisibilityMixin.__init__(self)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 class Attribute(ClbrBaseClasses.Attribute, VisibilityMixin):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 Class to represent a CORBA IDL attribute.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 def __init__(self, module, name, file, lineno):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 Constructor
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 @param module name of the module containing this attribute
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 @param name name of this attribute
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 @param file filename containing this attribute
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 @param lineno line number of the attribute definition
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 @type int
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 ClbrBaseClasses.Attribute.__init__(self, module, name, file, lineno)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 VisibilityMixin.__init__(self)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 def readmodule_ex(module, path=None):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 Read a CORBA IDL file and return a dictionary of classes, functions and
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 modules.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 @param module name of the IDL file
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 @param path path the file should be searched in
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 @type list of str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 @return the resulting dictionary
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 @rtype dict
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 path = [] if path is None else path[:]
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 for p in path: # search in path
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 pathname = os.path.join(p, module)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 if os.path.exists(pathname):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 filename = pathname
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 try:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 src = Utilities.readEncodedFile(filename)[0]
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 except (UnicodeError, OSError):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 # can't do anything with this module
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 return {}
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 return scan(src, filename, module)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 return {}
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 def scan(src, file, module):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 Public method to scan the given source text.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 @param src source text to be scanned
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 @param file file name associated with the source text
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 @param module module name associated with the source text
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 @type str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 @return dictionary containing the extracted data
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 @rtype dict
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 def calculateEndline(lineno, lines):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 Function to calculate the end line.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 @param lineno line number to start at (one based)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 @type int
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 @param lines list of source lines
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 @type list of str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 @return end line (one based)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 @rtype int
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 # convert lineno to be zero based
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 lineno -= 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 # 1. search for opening brace '{'
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 while lineno < len(lines) and "{" not in lines[lineno]:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 lineno += 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 depth = lines[lineno].count("{") - lines[lineno].count("}")
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 # 2. search for ending line, i.e. matching closing brace '}'
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 while depth > 0 and lineno < len(lines) - 1:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 lineno += 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 depth += lines[lineno].count("{") - lines[lineno].count("}")
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 if depth == 0:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 # found a matching brace
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 return lineno + 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 else:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 # nothing found
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 return -1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 def calculateMethodEndline(lineno, lines):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 Function to calculate the end line.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 @param lineno line number to start at (one based)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 @type int
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 @param lines list of source lines
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 @type list of str
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 @return end line (one based)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 @rtype int
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 # convert lineno to be zero based
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 lineno -= 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 while lineno < len(lines) and ";" not in lines[lineno]:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 lineno += 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 if ";" in lines[lineno]:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 # found an end indicator, i.e. ';'
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 return lineno + 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
289 else:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 return -1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 # convert eol markers the Python style
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 src = src.replace("\r\n", "\n").replace("\r", "\n")
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 srcLines = src.splitlines()
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 dictionary = {}
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 dict_counts = {}
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 classstack = [] # stack of (class, indent) pairs
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 indent = 0
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 lineno, last_lineno_pos = 1, 0
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 i = 0
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304 while True:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 m = _getnext(src, i)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 if not m:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 break
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308 start, i = m.span()
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 if m.start("Method") >= 0:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 # found a method definition or function
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 thisindent = indent
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 meth_name = m.group("MethodName")
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 meth_sig = m.group("MethodSignature")
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 meth_sig = meth_sig and meth_sig.replace("\\\n", "") or ""
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 meth_sig = _commentsub("", meth_sig)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 meth_sig = _normalize(" ", meth_sig)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 lineno += src.count("\n", last_lineno_pos, start)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 last_lineno_pos = start
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 # close all interfaces/modules indented at least as much
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 while classstack and classstack[-1][1] >= thisindent:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 del classstack[-1]
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 if classstack:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 # it's an interface/module method
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 cur_class = classstack[-1][0]
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 if isinstance(cur_class, (Interface, Module)):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 # it's a method
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 f = Function(None, meth_name, file, lineno, meth_sig)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 cur_class._addmethod(meth_name, f)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 # else it's a nested def
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 else:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 f = None
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 else:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 # it's a function
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 f = Function(module, meth_name, file, lineno, meth_sig)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 if meth_name in dict_counts:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 dict_counts[meth_name] += 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 meth_name = "{0}_{1:d}".format(meth_name, dict_counts[meth_name])
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 else:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 dict_counts[meth_name] = 0
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 dictionary[meth_name] = f
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 if f:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 endline = calculateMethodEndline(lineno, srcLines)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344 f.setEndLine(endline)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345 classstack.append((f, thisindent)) # Marker for nested fns
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 elif m.start("String") >= 0 or m.start("Comment") >= 0:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 pass
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 elif m.start("Interface") >= 0:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 # we found an interface definition
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 thisindent = indent
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
353 indent += 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 # close all interfaces/modules indented at least as much
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 while classstack and classstack[-1][1] >= thisindent:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 del classstack[-1]
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 lineno += src.count("\n", last_lineno_pos, start)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 last_lineno_pos = start
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 class_name = m.group("InterfaceName")
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360 inherit = m.group("InterfaceSupers")
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 if inherit:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362 # the interface inherits from other interfaces
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 inherit = inherit[1:].strip()
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 inherit = [_commentsub("", inherit)]
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 # remember this interface
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 cur_class = Interface(module, class_name, inherit, file, lineno)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 endline = calculateEndline(lineno, srcLines)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 cur_class.setEndLine(endline)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 if not classstack:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 dictionary[class_name] = cur_class
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371 else:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 cls = classstack[-1][0]
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 cls._addclass(class_name, cur_class)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 classstack.append((cur_class, thisindent))
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 elif m.start("Module") >= 0:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 # we found a module definition
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 thisindent = indent
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 indent += 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 # close all interfaces/modules indented at least as much
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 while classstack and classstack[-1][1] >= thisindent:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 del classstack[-1]
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 lineno += src.count("\n", last_lineno_pos, start)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 last_lineno_pos = start
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385 module_name = m.group("ModuleName")
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
386 # remember this module
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
387 cur_class = Module(module, module_name, file, lineno)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388 endline = calculateEndline(lineno, srcLines)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 cur_class.setEndLine(endline)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 if not classstack:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 dictionary[module_name] = cur_class
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
392 classstack.append((cur_class, thisindent))
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 elif m.start("Attribute") >= 0:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395 lineno += src.count("\n", last_lineno_pos, start)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
396 last_lineno_pos = start
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
397 index = -1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
398 while index >= -len(classstack):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399 if (
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
400 classstack[index][0] is not None
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401 and not isinstance(classstack[index][0], Function)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
402 and classstack[index][1] < indent
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403 ):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404 attributes = m.group("AttributeNames").split(",")
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 ro = m.group("AttributeReadonly")
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 for attribute in attributes:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 attr = Attribute(module, attribute, file, lineno)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 if ro:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 attr.setPrivate()
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410 classstack[index][0]._addattribute(attr)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411 break
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 else:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413 index -= 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415 elif m.start("Begin") >= 0:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416 # a begin of a block we are not interested in
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 indent += 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419 elif m.start("End") >= 0:
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
420 # an end of a block
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
421 indent -= 1
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 return dictionary

eric ide

mercurial