85 (r'@', Punctuation), |
85 (r'@', Punctuation), |
86 inherit, |
86 inherit, |
87 ], |
87 ], |
88 'oc_classname': [ |
88 'oc_classname': [ |
89 # interface definition that inherits |
89 # interface definition that inherits |
90 ('([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{)', |
90 (r'([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{)', |
91 bygroups(Name.Class, Text, Name.Class, Text, Punctuation), |
91 bygroups(Name.Class, Text, Name.Class, Text, Punctuation), |
92 ('#pop', 'oc_ivars')), |
92 ('#pop', 'oc_ivars')), |
93 ('([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?', |
93 (r'([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?', |
94 bygroups(Name.Class, Text, Name.Class), '#pop'), |
94 bygroups(Name.Class, Text, Name.Class), '#pop'), |
95 # interface definition for a category |
95 # interface definition for a category |
96 ('([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))(\s*)(\{)', |
96 (r'([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))(\s*)(\{)', |
97 bygroups(Name.Class, Text, Name.Label, Text, Punctuation), |
97 bygroups(Name.Class, Text, Name.Label, Text, Punctuation), |
98 ('#pop', 'oc_ivars')), |
98 ('#pop', 'oc_ivars')), |
99 ('([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))', |
99 (r'([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))', |
100 bygroups(Name.Class, Text, Name.Label), '#pop'), |
100 bygroups(Name.Class, Text, Name.Label), '#pop'), |
101 # simple interface / implementation |
101 # simple interface / implementation |
102 ('([a-zA-Z$_][\w$]*)(\s*)(\{)', |
102 (r'([a-zA-Z$_][\w$]*)(\s*)(\{)', |
103 bygroups(Name.Class, Text, Punctuation), ('#pop', 'oc_ivars')), |
103 bygroups(Name.Class, Text, Punctuation), ('#pop', 'oc_ivars')), |
104 ('([a-zA-Z$_][\w$]*)', Name.Class, '#pop') |
104 (r'([a-zA-Z$_][\w$]*)', Name.Class, '#pop') |
105 ], |
105 ], |
106 'oc_forward_classname': [ |
106 'oc_forward_classname': [ |
107 ('([a-zA-Z$_][\w$]*)(\s*,\s*)', |
107 (r'([a-zA-Z$_][\w$]*)(\s*,\s*)', |
108 bygroups(Name.Class, Text), 'oc_forward_classname'), |
108 bygroups(Name.Class, Text), 'oc_forward_classname'), |
109 ('([a-zA-Z$_][\w$]*)(\s*;?)', |
109 (r'([a-zA-Z$_][\w$]*)(\s*;?)', |
110 bygroups(Name.Class, Text), '#pop') |
110 bygroups(Name.Class, Text), '#pop') |
111 ], |
111 ], |
112 'oc_ivars': [ |
112 'oc_ivars': [ |
113 include('whitespace'), |
113 include('whitespace'), |
114 include('statements'), |
114 include('statements'), |
242 (r'(%subclass)(\s+)', bygroups(Keyword, Text), |
242 (r'(%subclass)(\s+)', bygroups(Keyword, Text), |
243 ('#pop', 'logos_classname')), |
243 ('#pop', 'logos_classname')), |
244 inherit, |
244 inherit, |
245 ], |
245 ], |
246 'logos_init_directive': [ |
246 'logos_init_directive': [ |
247 ('\s+', Text), |
247 (r'\s+', Text), |
248 (',', Punctuation, ('logos_init_directive', '#pop')), |
248 (',', Punctuation, ('logos_init_directive', '#pop')), |
249 ('([a-zA-Z$_][\w$]*)(\s*)(=)(\s*)([^);]*)', |
249 (r'([a-zA-Z$_][\w$]*)(\s*)(=)(\s*)([^);]*)', |
250 bygroups(Name.Class, Text, Punctuation, Text, Text)), |
250 bygroups(Name.Class, Text, Punctuation, Text, Text)), |
251 ('([a-zA-Z$_][\w$]*)', Name.Class), |
251 (r'([a-zA-Z$_][\w$]*)', Name.Class), |
252 ('\)', Punctuation, '#pop'), |
252 (r'\)', Punctuation, '#pop'), |
253 ], |
253 ], |
254 'logos_classname': [ |
254 'logos_classname': [ |
255 ('([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?', |
255 (r'([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?', |
256 bygroups(Name.Class, Text, Name.Class), '#pop'), |
256 bygroups(Name.Class, Text, Name.Class), '#pop'), |
257 ('([a-zA-Z$_][\w$]*)', Name.Class, '#pop') |
257 (r'([a-zA-Z$_][\w$]*)', Name.Class, '#pop') |
258 ], |
258 ], |
259 'root': [ |
259 'root': [ |
260 (r'(%subclass)(\s+)', bygroups(Keyword, Text), |
260 (r'(%subclass)(\s+)', bygroups(Keyword, Text), |
261 'logos_classname'), |
261 'logos_classname'), |
262 (r'(%hook|%group)(\s+)([a-zA-Z$_][\w$]+)', |
262 (r'(%hook|%group)(\s+)([a-zA-Z$_][\w$]+)', |