2093 ] |
2095 ] |
2094 } |
2096 } |
2095 |
2097 |
2096 class GherkinLexer(RegexLexer): |
2098 class GherkinLexer(RegexLexer): |
2097 """ |
2099 """ |
2098 For `Gherkin <http://cukes.info/>` syntax. |
2100 For `Gherkin <http://github.com/aslakhellesoy/gherkin/>` syntax. |
2099 |
2101 |
2100 *New in Pygments 1.2.* |
2102 *New in Pygments 1.2.* |
2101 """ |
2103 """ |
2102 name = 'Gherkin' |
2104 name = 'Gherkin' |
2103 aliases = ['Cucumber', 'cucumber', 'Gherkin', 'gherkin'] |
2105 aliases = ['Cucumber', 'cucumber', 'Gherkin', 'gherkin'] |
2104 filenames = ['*.feature'] |
2106 filenames = ['*.feature'] |
2105 mimetypes = ['text/x-gherkin'] |
2107 mimetypes = ['text/x-gherkin'] |
2106 |
2108 |
2107 feature_keywords_regexp = r'^(기능|機能|功能|フィーチャ|خاصية|תכונה|Функционалност|Функционал|Особина|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd)(:)(.*)$' |
2109 feature_keywords = r'^(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Фича|Особина|Могућност|Özellik|Właściwość|Tính năng|Trajto|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd)(:)(.*)$' |
2108 scenario_keywords_regexp = r'^(\s*)(시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|سيناريو مخطط|سيناريو|الخلفية|תרחיש|תבנית תרחיש|רקע|Тарих|Сценарио|Сценарий структураси|Сценарий|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Пример|Предыстория|Предистория|Позадина|Основа|Концепт|Контекст|Założenia|Tình huống|Tausta|Taust|Tapausaihio|Tapaus|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenarijaus šablonas|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l\'escenari|Escenario|Escenari|Dasar|Contexto|Contexte|Contesto|Condiţii|Conditii|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y\'all|Achtergrond|Abstrakt Scenario|Abstract Scenario)(:)(.*)$' |
2110 feature_element_keywords = r'^(\s*)(시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|سيناريو مخطط|سيناريو|الخلفية|תרחיש|תבנית תרחיש|רקע|Тарих|Сценарій|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Пример|Предыстория|Предистория|Позадина|Передумова|Основа|Концепт|Контекст|Założenia|Wharrimean is|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenaro|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenarijaus šablonas|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Konturo de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Fono|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l\'escenari|Escenario|Escenari|Dis is what went down|Dasar|Contexto|Contexte|Contesto|Condiţii|Conditii|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y\'all|Achtergrond|Abstrakt Scenario|Abstract Scenario)(:)(.*)$' |
2109 examples_regexp = r'^(\s*)(예|例子|例|サンプル|امثلة|דוגמאות|Сценарији|Примери|Мисоллар|Значения|Örnekler|Voorbeelden|Variantai|Tapaukset|Scenarios|Scenariji|Scenarijai|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Piemēri|Pavyzdžiai|Paraugs|Juhtumid|Exemplos|Exemples|Exemplele|Exempel|Examples|Esempi|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Contoh|Cobber|Beispiele)(:)(.*)$' |
2111 examples_keywords = r'^(\s*)(예|例子|例|サンプル|امثلة|דוגמאות|Сценарији|Примери|Приклади|Мисоллар|Значения|Örnekler|Voorbeelden|Variantai|Tapaukset|Scenarios|Scenariji|Scenarijai|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Piemēri|Pavyzdžiai|Paraugs|Juhtumid|Exemplos|Exemples|Exemplele|Exempel|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Contoh|Cobber|Beispiele)(:)(.*)$' |
2110 step_keywords_regexp = r'^(\s*)(하지만|조건|만일|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Унда |То |Онда |Но |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Агар |А |Și |És |anrhegedig a |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Yna |Ya know how |Ya gotta |Y |Wtedy |When y\'all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y\'all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu\'|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givet |Given y\'all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Donat |Donada |Diyelim ki |Dengan |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |But y\'all |But |Biết |Bet |BUT |Atunci |And y\'all |And |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )' |
2112 step_keywords = r'^(\s*)(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y\'all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y\'all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu\'|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y\'all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y\'all |But |Buh |Biết |Bet |BUT |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y\'all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )' |
2111 |
2113 |
2112 tokens = { |
2114 tokens = { |
2113 'comments': [ |
2115 'comments': [ |
2114 (r'#.*$', Comment) |
2116 (r'#.*$', Comment), |
2115 ], |
2117 ], |
2116 'multiline_descriptions' : [ |
2118 'feature_elements' : [ |
2117 (step_keywords_regexp, Keyword, "#pop"), |
2119 (step_keywords, Keyword, "step_content_stack"), |
2118 include('comments'), |
2120 include('comments'), |
2119 (r"(\s|.)", Name.Constant) |
2121 (r"(\s|.)", Name.Function), |
2120 ], |
2122 ], |
2121 'multiline_descriptions_on_stack' : [ |
2123 'feature_elements_on_stack' : [ |
2122 (step_keywords_regexp, Keyword, "#pop:2"), |
2124 (step_keywords, Keyword, "#pop:2"), |
2123 include('comments'), |
2125 include('comments'), |
2124 (r"(\s|.)", Name.Constant) |
2126 (r"(\s|.)", Name.Function), |
2125 ], |
2127 ], |
2126 'scenario_table_description': [ |
2128 'examples_table': [ |
2127 (r"\s+\|", Text, 'scenario_table_header'), |
2129 (r"\s+\|", Keyword, 'examples_table_header'), |
2128 include('comments'), |
2130 include('comments'), |
2129 (r"(\s|.)", Name.Constant) |
2131 (r"(\s|.)", Name.Function), |
2130 ], |
2132 ], |
2131 'scenario_table_header': [ |
2133 'examples_table_header': [ |
2132 (r"\s+\|\s*$", Text, "#pop:2"), |
2134 (r"\s+\|\s*$", Keyword, "#pop:2"), |
2133 (r"(\s+\|\s*)(#.*)$", bygroups(Text, Comment), "#pop:2"), |
|
2134 include('comments'), |
2135 include('comments'), |
2135 (r"\s+\|", Text), |
2136 (r"\s*\|", Keyword), |
2136 (r"[^\|]", Name.Variable) |
2137 (r"[^\|]", Name.Variable), |
2137 ], |
2138 ], |
2138 'scenario_sections_on_stack': [ |
2139 'scenario_sections_on_stack': [ |
2139 (scenario_keywords_regexp, |
2140 (feature_element_keywords, bygroups(Name.Function, Keyword, Keyword, Name.Function), "feature_elements_on_stack"), |
2140 bygroups(Text, Name.Class, Name.Class, Name.Constant), |
2141 ], |
2141 "multiline_descriptions_on_stack") |
|
2142 ], |
|
2143 'narrative': [ |
2142 'narrative': [ |
2144 include('scenario_sections_on_stack'), |
2143 include('scenario_sections_on_stack'), |
2145 (r"(\s|.)", Name.Builtin) |
2144 (r"(\s|.)", Name.Function), |
2146 ], |
2145 ], |
2147 'table_vars': [ |
2146 'table_vars': [ |
2148 (r'(<[^>]*>)', bygroups(Name.Variable)) |
2147 (r'(<[^>]+>)', Name.Variable), |
|
2148 ], |
|
2149 'numbers': [ |
|
2150 (r'(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', String), |
2149 ], |
2151 ], |
2150 'string': [ |
2152 'string': [ |
2151 include('table_vars'), |
2153 include('table_vars'), |
2152 (r'(\s|.)', String), |
2154 (r'(\s|.)', String), |
2153 ], |
2155 ], |
2154 'py_string': [ |
2156 'py_string': [ |
2155 (r'"""', String, "#pop"), |
2157 (r'"""', Keyword, "#pop"), |
|
2158 include('string'), |
|
2159 ], |
|
2160 'step_content_root':[ |
|
2161 (r"$", Keyword, "#pop"), |
|
2162 include('step_content'), |
|
2163 ], |
|
2164 'step_content_stack':[ |
|
2165 (r"$", Keyword, "#pop:2"), |
|
2166 include('step_content'), |
|
2167 ], |
|
2168 'step_content':[ |
|
2169 (r'"', Name.Function, "double_string"), |
|
2170 include('table_vars'), |
|
2171 include('numbers'), |
|
2172 include('comments'), |
|
2173 (r'(\s|.)', Name.Function), |
|
2174 ], |
|
2175 'table_content': [ |
|
2176 (r"\s+\|\s*$", Keyword, "#pop"), |
|
2177 include('comments'), |
|
2178 (r"\s*\|", Keyword), |
2156 include('string'), |
2179 include('string'), |
2157 ], |
2180 ], |
2158 'double_string': [ |
2181 'double_string': [ |
2159 (r'"', String, "#pop"), |
2182 (r'"', Name.Function, "#pop"), |
2160 include('string'), |
2183 include('string'), |
2161 ], |
2184 ], |
2162 'root': [ |
2185 'root': [ |
2163 (r'\n', Text), |
2186 (r'\n', Name.Function), |
2164 include('comments'), |
2187 include('comments'), |
2165 (r'"""', String, "py_string"), |
2188 (r'"""', Keyword, "py_string"), |
2166 (r'"', String, "double_string"), |
2189 (r'\s+\|', Keyword, 'table_content'), |
|
2190 (r'"', Name.Function, "double_string"), |
2167 include('table_vars'), |
2191 include('table_vars'), |
2168 (r'@[^@\s]+', Name.Namespace), |
2192 include('numbers'), |
2169 (step_keywords_regexp, bygroups(Text, Keyword)), |
2193 (r'(\s*)(@[^@\r\n\t ]+)', bygroups(Name.Function, Name.Tag)), |
2170 (feature_keywords_regexp, |
2194 (step_keywords, bygroups(Name.Function, Keyword), "step_content_root"), |
2171 bygroups(Name.Class, Name.Class, Name.Constant), 'narrative'), |
2195 (feature_keywords, bygroups(Keyword, Keyword, Name.Function), 'narrative'), |
2172 (scenario_keywords_regexp, |
2196 (feature_element_keywords, bygroups(Name.Function, Keyword, Keyword, Name.Function), "feature_elements"), |
2173 bygroups(Text, Name.Class, Name.Class, Name.Constant), |
2197 (examples_keywords, bygroups(Name.Function, Keyword, Keyword, Name.Function), "examples_table"), |
2174 "multiline_descriptions"), |
2198 (r'(\s|.)', Name.Function), |
2175 (examples_regexp, |
|
2176 bygroups(Text, Name.Class, Name.Class, Name.Constant), |
|
2177 "scenario_table_description"), |
|
2178 (r'(\s|.)', Text) |
|
2179 ] |
2199 ] |
2180 } |
2200 } |
2181 |
|
2182 |
2201 |
2183 class AsymptoteLexer(RegexLexer): |
2202 class AsymptoteLexer(RegexLexer): |
2184 """ |
2203 """ |
2185 For `Asymptote <http://asymptote.sf.net/>`_ source code. |
2204 For `Asymptote <http://asymptote.sf.net/>`_ source code. |
2186 |
2205 |
2293 if token is Name and value in ASYFUNCNAME: |
2312 if token is Name and value in ASYFUNCNAME: |
2294 token = Name.Function |
2313 token = Name.Function |
2295 elif token is Name and value in ASYVARNAME: |
2314 elif token is Name and value in ASYVARNAME: |
2296 token = Name.Variable |
2315 token = Name.Variable |
2297 yield index, token, value |
2316 yield index, token, value |
|
2317 |
|
2318 |
|
2319 class PostScriptLexer(RegexLexer): |
|
2320 """ |
|
2321 Lexer for PostScript files. |
|
2322 |
|
2323 The PostScript Language Reference published by Adobe at |
|
2324 <http://partners.adobe.com/public/developer/en/ps/PLRM.pdf> |
|
2325 is the authority for this. |
|
2326 |
|
2327 *New in Pygments 1.4.* |
|
2328 """ |
|
2329 name = 'PostScript' |
|
2330 aliases = ['postscript'] |
|
2331 filenames = ['*.ps', '*.eps'] |
|
2332 mimetypes = ['application/postscript'] |
|
2333 |
|
2334 delimiter = r'\(\)\<\>\[\]\{\}\/\%\s' |
|
2335 delimiter_end = r'(?=[%s])' % delimiter |
|
2336 |
|
2337 valid_name_chars = r'[^%s]' % delimiter |
|
2338 valid_name = r"%s+%s" % (valid_name_chars, delimiter_end) |
|
2339 |
|
2340 tokens = { |
|
2341 'root': [ |
|
2342 # All comment types |
|
2343 (r'^%!.+\n', Comment.Preproc), |
|
2344 (r'%%.*\n', Comment.Special), |
|
2345 (r'(^%.*\n){2,}', Comment.Multiline), |
|
2346 (r'%.*\n', Comment.Single), |
|
2347 |
|
2348 # String literals are awkward; enter separate state. |
|
2349 (r'\(', String, 'stringliteral'), |
|
2350 |
|
2351 (r'[\{\}(\<\<)(\>\>)\[\]]', Punctuation), |
|
2352 |
|
2353 # Numbers |
|
2354 (r'<[0-9A-Fa-f]+>' + delimiter_end, Number.Hex), |
|
2355 # Slight abuse: use Oct to signify any explicit base system |
|
2356 (r'[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)' |
|
2357 r'((e|E)[0-9]+)?' + delimiter_end, Number.Oct), |
|
2358 (r'(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?' |
|
2359 + delimiter_end, Number.Float), |
|
2360 (r'(\-|\+)?[0-9]+' + delimiter_end, Number.Integer), |
|
2361 |
|
2362 # References |
|
2363 (r'\/%s' % valid_name, Name.Variable), |
|
2364 |
|
2365 # Names |
|
2366 (valid_name, Name.Function), # Anything else is executed |
|
2367 |
|
2368 # These keywords taken from |
|
2369 # <http://www.math.ubc.ca/~cass/graphics/manual/pdf/a1.pdf> |
|
2370 # Is there an authoritative list anywhere that doesn't involve |
|
2371 # trawling documentation? |
|
2372 |
|
2373 (r'(false|true)' + delimiter_end, Keyword.Constant), |
|
2374 |
|
2375 # Conditionals / flow control |
|
2376 (r'(eq|ne|ge|gt|le|lt|and|or|not|if|ifelse|for|forall)' |
|
2377 + delimiter_end, Keyword.Reserved), |
|
2378 |
|
2379 ('(abs|add|aload|arc|arcn|array|atan|begin|bind|ceiling|charpath|' |
|
2380 'clip|closepath|concat|concatmatrix|copy|cos|currentlinewidth|' |
|
2381 'currentmatrix|currentpoint|curveto|cvi|cvs|def|defaultmatrix|' |
|
2382 'dict|dictstackoverflow|div|dtransform|dup|end|exch|exec|exit|exp|' |
|
2383 'fill|findfont|floor|get|getinterval|grestore|gsave|gt|' |
|
2384 'identmatrix|idiv|idtransform|index|invertmatrix|itransform|' |
|
2385 'length|lineto|ln|load|log|loop|matrix|mod|moveto|mul|neg|newpath|' |
|
2386 'pathforall|pathbbox|pop|print|pstack|put|quit|rand|rangecheck|' |
|
2387 'rcurveto|repeat|restore|rlineto|rmoveto|roll|rotate|round|run|' |
|
2388 'save|scale|scalefont|setdash|setfont|setgray|setlinecap|' |
|
2389 'setlinejoin|setlinewidth|setmatrix|setrgbcolor|shfill|show|' |
|
2390 'showpage|sin|sqrt|stack|stringwidth|stroke|strokepath|sub|' |
|
2391 'syntaxerror|transform|translate|truncate|typecheck|undefined|' |
|
2392 'undefinedfilename|undefinedresult)' + delimiter_end, |
|
2393 Name.Builtin), |
|
2394 |
|
2395 (r'\s+', Text), |
|
2396 ], |
|
2397 |
|
2398 'stringliteral': [ |
|
2399 (r'[^\(\)\\]+', String), |
|
2400 (r'\\', String.Escape, 'escape'), |
|
2401 (r'\(', String, '#push'), |
|
2402 (r'\)', String, '#pop'), |
|
2403 ], |
|
2404 |
|
2405 'escape': [ |
|
2406 (r'([0-8]{3}|n|r|t|b|f|\\|\(|\)|)', String.Escape, '#pop'), |
|
2407 ], |
|
2408 } |
|
2409 |
|
2410 |
|
2411 class AutohotkeyLexer(RegexLexer): |
|
2412 """ |
|
2413 For `autohotkey <http://www.autohotkey.com/>`_ source code. |
|
2414 |
|
2415 *New in Pygments 1.4.* |
|
2416 """ |
|
2417 name = 'autohotkey' |
|
2418 aliases = ['ahk'] |
|
2419 filenames = ['*.ahk', '*.ahkl'] |
|
2420 mimetypes = ['text/x-autohotkey'] |
|
2421 |
|
2422 flags = re.IGNORECASE | re.DOTALL | re.MULTILINE |
|
2423 |
|
2424 tokens = { |
|
2425 'root': [ |
|
2426 include('whitespace'), |
|
2427 (r'^\(', String, 'continuation'), |
|
2428 include('comments'), |
|
2429 (r'(^\s*)(\w+)(\s*)(=)', |
|
2430 bygroups(Text.Whitespace, Name, Text.Whitespace, Operator), |
|
2431 'command'), |
|
2432 (r'([\w#@$?\[\]]+)(\s*)(\()', |
|
2433 bygroups(Name.Function, Text.Whitespace, Punctuation), |
|
2434 'parameters'), |
|
2435 include('directives'), |
|
2436 include('labels'), |
|
2437 include('commands'), |
|
2438 include('expressions'), |
|
2439 include('numbers'), |
|
2440 include('literals'), |
|
2441 include('keynames'), |
|
2442 include('keywords'), |
|
2443 ], |
|
2444 'command': [ |
|
2445 include('comments'), |
|
2446 include('whitespace'), |
|
2447 (r'^\(', String, 'continuation'), |
|
2448 (r'[^\n]*?(?=;*|$)', String, '#pop'), |
|
2449 include('numbers'), |
|
2450 include('literals'), |
|
2451 ], |
|
2452 |
|
2453 'expressions': [ |
|
2454 include('comments'), |
|
2455 include('whitespace'), |
|
2456 include('numbers'), |
|
2457 include('literals'), |
|
2458 (r'([]\w#@$?[]+)(\s*)(\()', |
|
2459 bygroups(Name.Function, Text.Whitespace, Punctuation), |
|
2460 'parameters'), |
|
2461 (r'A_\w+', Name.Builtin), |
|
2462 (r'%[]\w#@$?[]+?%', Name.Variable), |
|
2463 # blocks: if, else, function definitions |
|
2464 (r'{', Punctuation, 'block'), |
|
2465 # parameters in function calls |
|
2466 ], |
|
2467 'literals': [ |
|
2468 (r'"', String, 'string'), |
|
2469 (r'A_\w+', Name.Builtin), |
|
2470 (r'%[]\w#@$?[]+?%', Name.Variable), |
|
2471 (r'[-~!%^&*+|?:<>/=]=?', Operator, 'expressions'), |
|
2472 (r'==', Operator, 'expressions'), |
|
2473 ('[{()},.%#`;]', Punctuation), |
|
2474 (r'\\', Punctuation), |
|
2475 include('keywords'), |
|
2476 (r'\w+', Text), |
|
2477 ], |
|
2478 'string': [ |
|
2479 (r'"', String, '#pop'), |
|
2480 (r'""|`.', String.Escape), |
|
2481 (r'[^\`"\n]+', String), # all other characters |
|
2482 ], |
|
2483 'block': [ |
|
2484 include('root'), |
|
2485 ('{', Punctuation, '#push'), |
|
2486 ('}', Punctuation, '#pop'), |
|
2487 ], |
|
2488 'parameters': [ |
|
2489 (r'\)', Punctuation, '#pop'), |
|
2490 (r'\(', Punctuation, '#push'), |
|
2491 include('numbers'), |
|
2492 include('literals'), |
|
2493 include('whitespace'), |
|
2494 ], |
|
2495 'keywords': [ |
|
2496 (r'(static|global|local)\b', Keyword.Type), |
|
2497 (r'(if|else|and|or)\b', Keyword.Reserved), |
|
2498 ], |
|
2499 'directives': [ |
|
2500 (r'#\w+?\s', Keyword), |
|
2501 ], |
|
2502 'labels': [ |
|
2503 # hotkeys and labels |
|
2504 # technically, hotkey names are limited to named keys and buttons |
|
2505 (r'(^\s*)([^:\s]+?:{1,2})', bygroups(Text.Whitespace, Name.Label)), |
|
2506 # hotstrings |
|
2507 (r'(^\s*)(::[]\w#@$?[]+?::)', bygroups(Text.Whitespace, Name.Label)), |
|
2508 ], |
|
2509 'comments': [ |
|
2510 (r'^;+.*?$', Comment.Single), # beginning of line comments |
|
2511 (r'(?<=\s);+.*?$', Comment.Single), # end of line comments |
|
2512 (r'^/\*.*?\n\*/', Comment.Multiline), |
|
2513 (r'(?<!\n)/\*.*?\n\*/', Error), # must be at start of line |
|
2514 ], |
|
2515 'whitespace': [ |
|
2516 (r'[ \t]+', Text.Whitespace), |
|
2517 ], |
|
2518 'numbers': [ |
|
2519 (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float), |
|
2520 (r'\d+[eE][+-]?[0-9]+', Number.Float), |
|
2521 (r'0[0-7]+', Number.Oct), |
|
2522 (r'0[xX][a-fA-F0-9]+', Number.Hex), |
|
2523 (r'\d+L', Number.Integer.Long), |
|
2524 (r'\d+', Number.Integer) |
|
2525 ], |
|
2526 'continuation': [ |
|
2527 (r'\n\)', Punctuation, '#pop'), |
|
2528 (r'\s[^\n\)]+', String), |
|
2529 ], |
|
2530 'keynames': [ |
|
2531 (r'\[[^\]]+\]', Keyword, 'keynames') |
|
2532 ], |
|
2533 'commands': [ |
|
2534 (r'(autotrim|blockinput|break|click|' |
|
2535 r'clipwait|continue|control|' |
|
2536 r'controlclick|controlfocus|controlget|' |
|
2537 r'controlgetfocus|controlgetpos|controlgettext|' |
|
2538 r'controlmove|controlsend|controlsendraw|' |
|
2539 r'controlsettext|coordmode|critical|' |
|
2540 r'detecthiddentext|detecthiddenwindows|' |
|
2541 r'dllcall|drive|' |
|
2542 r'driveget|drivespacefree|' |
|
2543 r'else|envadd|envdiv|' |
|
2544 r'envget|envmult|envset|' |
|
2545 r'envsub|envupdate|exit|' |
|
2546 r'exitapp|fileappend|filecopy|' |
|
2547 r'filecopydir|filecreatedir|filecreateshortcut|' |
|
2548 r'filedelete|filegetattrib|filegetshortcut|' |
|
2549 r'filegetsize|filegettime|filegetversion|' |
|
2550 r'fileinstall|filemove|filemovedir|' |
|
2551 r'fileread|filereadline|filerecycle|' |
|
2552 r'filerecycleempty|fileremovedir|fileselectfile|' |
|
2553 r'fileselectfolder|filesetattrib|filesettime|' |
|
2554 r'formattime|gosub|' |
|
2555 r'goto|groupactivate|groupadd|' |
|
2556 r'groupclose|groupdeactivate|gui|' |
|
2557 r'guicontrol|guicontrolget|hotkey|' |
|
2558 r'ifexist|ifgreater|ifgreaterorequal|' |
|
2559 r'ifinstring|ifless|iflessorequal|' |
|
2560 r'ifmsgbox|ifnotequal|ifnotexist|' |
|
2561 r'ifnotinstring|ifwinactive|ifwinexist|' |
|
2562 r'ifwinnotactive|ifwinnotexist|imagesearch|' |
|
2563 r'inidelete|iniread|iniwrite|' |
|
2564 r'input|inputbox|keyhistory|' |
|
2565 r'keywait|listhotkeys|listlines|' |
|
2566 r'listvars|loop|' |
|
2567 r'menu|mouseclick|mouseclickdrag|' |
|
2568 r'mousegetpos|mousemove|msgbox|' |
|
2569 r'onmessage|onexit|outputdebug|' |
|
2570 r'pixelgetcolor|pixelsearch|postmessage|' |
|
2571 r'process|progress|random|' |
|
2572 r'regexmatch|regexreplace|registercallback|' |
|
2573 r'regdelete|regread|regwrite|' |
|
2574 r'reload|repeat|return|' |
|
2575 r'run|runas|runwait|' |
|
2576 r'send|sendevent|sendinput|' |
|
2577 r'sendmessage|sendmode|sendplay|' |
|
2578 r'sendraw|setbatchlines|setcapslockstate|' |
|
2579 r'setcontroldelay|setdefaultmousespeed|setenv|' |
|
2580 r'setformat|setkeydelay|setmousedelay|' |
|
2581 r'setnumlockstate|setscrolllockstate|' |
|
2582 r'setstorecapslockmode|' |
|
2583 r'settimer|settitlematchmode|setwindelay|' |
|
2584 r'setworkingdir|shutdown|sleep|' |
|
2585 r'sort|soundbeep|soundget|' |
|
2586 r'soundgetwavevolume|soundplay|soundset|' |
|
2587 r'soundsetwavevolume|splashimage|splashtextoff|' |
|
2588 r'splashtexton|splitpath|statusbargettext|' |
|
2589 r'statusbarwait|stringcasesense|stringgetpos|' |
|
2590 r'stringleft|stringlen|stringlower|' |
|
2591 r'stringmid|stringreplace|stringright|' |
|
2592 r'stringsplit|stringtrimleft|stringtrimright|' |
|
2593 r'stringupper|suspend|sysget|' |
|
2594 r'thread|tooltip|transform|' |
|
2595 r'traytip|urldownloadtofile|while|' |
|
2596 r'varsetcapacity|' |
|
2597 r'winactivate|winactivatebottom|winclose|' |
|
2598 r'winget|wingetactivestats|wingetactivetitle|' |
|
2599 r'wingetclass|wingetpos|wingettext|' |
|
2600 r'wingettitle|winhide|winkill|' |
|
2601 r'winmaximize|winmenuselectitem|winminimize|' |
|
2602 r'winminimizeall|winminimizeallundo|winmove|' |
|
2603 r'winrestore|winset|winsettitle|' |
|
2604 r'winshow|winwait|winwaitactive|' |
|
2605 r'winwaitclose|winwaitnotactive' |
|
2606 r'true|false|NULL)\b', Keyword, 'command'), |
|
2607 ], |
|
2608 |
|
2609 } |
|
2610 |
|
2611 class MaqlLexer(RegexLexer): |
|
2612 """ |
|
2613 Lexer for `GoodData MAQL <https://secure.gooddata.com/docs/html/advanced.metric.tutorial.html>`_ |
|
2614 scripts. |
|
2615 |
|
2616 *New in Pygments 1.4.* |
|
2617 """ |
|
2618 |
|
2619 name = 'MAQL' |
|
2620 aliases = ['maql'] |
|
2621 filenames = ['*.maql'] |
|
2622 mimetypes = ['text/x-gooddata-maql','application/x-gooddata-maql'] |
|
2623 |
|
2624 flags = re.IGNORECASE |
|
2625 tokens = { |
|
2626 'root': [ |
|
2627 # IDENTITY |
|
2628 (r'IDENTIFIER\b', Name.Builtin), |
|
2629 # IDENTIFIER |
|
2630 (r'\{[^}]+\}', Name.Variable), |
|
2631 # NUMBER |
|
2632 (r'[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]{1,3})?', Literal.Number), |
|
2633 # STRING |
|
2634 (r'"', Literal.String, 'string-literal'), |
|
2635 # RELATION |
|
2636 (r'\<\>|\!\=', Operator), |
|
2637 (r'\=|\>\=|\>|\<\=|\<', Operator), |
|
2638 # := |
|
2639 (r'\:\=', Operator), |
|
2640 # OBJECT |
|
2641 (r'\[[^]]+\]', Name.Variable.Class), |
|
2642 # keywords |
|
2643 (r'(DIMENSIONS?|BOTTOM|METRIC|COUNT|OTHER|FACT|WITH|TOP|OR|' |
|
2644 r'ATTRIBUTE|CREATE|PARENT|FALSE|ROWS?|FROM|ALL|AS|PF|' |
|
2645 r'COLUMNS?|DEFINE|REPORT|LIMIT|TABLE|LIKE|AND|BY|' |
|
2646 r'BETWEEN|EXCEPT|SELECT|MATCH|WHERE|TRUE|FOR|IN|' |
|
2647 r'WITHOUT|FILTER|ALIAS|ORDER|FACT|WHEN|NOT|ON|' |
|
2648 r'KEYS|KEY|FULLSET|PRIMARY|LABELS|LABEL|VISUAL|' |
|
2649 r'TITLE|DESCRIPTION|FOLDER|ALTER|DROP|ADD|DATASET|' |
|
2650 r'DATATYPE|INT|BIGINT|DOUBLE|DATE|VARCHAR|DECIMAL|' |
|
2651 r'SYNCHRONIZE|TYPE|DEFAULT|ORDER|ASC|DESC|HYPERLINK|' |
|
2652 r'INCLUDE|TEMPLATE|MODIFY)\b', Keyword), |
|
2653 # FUNCNAME |
|
2654 (r'[a-zA-Z]\w*\b', Name.Function), |
|
2655 # Comments |
|
2656 (r'#.*', Comment.Single), |
|
2657 # Punctuation |
|
2658 (r'[,;\(\)]', Token.Punctuation), |
|
2659 # Space is not significant |
|
2660 (r'\s+', Text) |
|
2661 ], |
|
2662 'string-literal': [ |
|
2663 (r'\\[tnrfbae"\\]', String.Escape), |
|
2664 (r'"', Literal.String, '#pop'), |
|
2665 (r'[^\\"]+', Literal.String) |
|
2666 ], |
|
2667 } |
|
2668 |
|
2669 |
|
2670 class GoodDataCLLexer(RegexLexer): |
|
2671 """ |
|
2672 Lexer for `GoodData-CL <http://github.com/gooddata/GoodData-CL/raw/master/cli/src/main/resources/com/gooddata/processor/COMMANDS.txt>`_ |
|
2673 script files. |
|
2674 |
|
2675 *New in Pygments 1.4.* |
|
2676 """ |
|
2677 |
|
2678 name = 'GoodData-CL' |
|
2679 aliases = ['gooddata-cl'] |
|
2680 filenames = ['*.gdc'] |
|
2681 mimetypes = ['text/x-gooddata-cl'] |
|
2682 |
|
2683 flags = re.IGNORECASE |
|
2684 tokens = { |
|
2685 'root': [ |
|
2686 # Comments |
|
2687 (r'#.*', Comment.Single), |
|
2688 # Function call |
|
2689 (r'[a-zA-Z]\w*', Name.Function), |
|
2690 # Argument list |
|
2691 (r'\(', Token.Punctuation, 'args-list'), |
|
2692 # Punctuation |
|
2693 (r';', Token.Punctuation), |
|
2694 # Space is not significant |
|
2695 (r'\s+', Text) |
|
2696 ], |
|
2697 'args-list': [ |
|
2698 (r'\)', Token.Punctuation, '#pop'), |
|
2699 (r',', Token.Punctuation), |
|
2700 (r'[a-zA-Z]\w*', Name.Variable), |
|
2701 (r'=', Operator), |
|
2702 (r'"', Literal.String, 'string-literal'), |
|
2703 (r'[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]{1,3})?', Literal.Number), |
|
2704 # Space is not significant |
|
2705 (r'\s', Text) |
|
2706 ], |
|
2707 'string-literal': [ |
|
2708 (r'\\[tnrfbae"\\]', String.Escape), |
|
2709 (r'"', Literal.String, '#pop'), |
|
2710 (r'[^\\"]+', Literal.String) |
|
2711 ] |
|
2712 } |
|
2713 |
|
2714 |
|
2715 class ProtoBufLexer(RegexLexer): |
|
2716 """ |
|
2717 Lexer for `Protocol Buffer <http://code.google.com/p/protobuf/>`_ |
|
2718 definition files. |
|
2719 |
|
2720 *New in Pygments 1.4.* |
|
2721 """ |
|
2722 |
|
2723 name = 'Protocol Buffer' |
|
2724 aliases = ['protobuf'] |
|
2725 filenames = ['*.proto'] |
|
2726 |
|
2727 tokens = { |
|
2728 'root': [ |
|
2729 (r'[ \t]+', Text), |
|
2730 (r'[,;{}\[\]\(\)]', Punctuation), |
|
2731 (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single), |
|
2732 (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), |
|
2733 (r'\b(import|option|optional|required|repeated|default|packed|' |
|
2734 r'ctype|extensions|to|max|rpc|returns)\b', Keyword), |
|
2735 (r'(int32|int64|uint32|uint64|sint32|sint64|' |
|
2736 r'fixed32|fixed64|sfixed32|sfixed64|' |
|
2737 r'float|double|bool|string|bytes)\b', Keyword.Type), |
|
2738 (r'(true|false)\b', Keyword.Constant), |
|
2739 (r'(package)(\s+)', bygroups(Keyword.Namespace, Text), 'package'), |
|
2740 (r'(message|extend)(\s+)', |
|
2741 bygroups(Keyword.Declaration, Text), 'message'), |
|
2742 (r'(enum|group|service)(\s+)', |
|
2743 bygroups(Keyword.Declaration, Text), 'type'), |
|
2744 (r'\".*\"', String), |
|
2745 (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float), |
|
2746 (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float), |
|
2747 (r'(\-?(inf|nan))', Number.Float), |
|
2748 (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex), |
|
2749 (r'0[0-7]+[LlUu]*', Number.Oct), |
|
2750 (r'\d+[LlUu]*', Number.Integer), |
|
2751 (r'[+-=]', Operator), |
|
2752 (r'([a-zA-Z_][a-zA-Z0-9_\.]*)([ \t]*)(=)', |
|
2753 bygroups(Name.Attribute, Text, Operator)), |
|
2754 ('[a-zA-Z_][a-zA-Z0-9_\.]*', Name), |
|
2755 ], |
|
2756 'package': [ |
|
2757 (r'[a-zA-Z_][a-zA-Z0-9_]*', Name.Namespace, '#pop') |
|
2758 ], |
|
2759 'message': [ |
|
2760 (r'[a-zA-Z_][a-zA-Z0-9_]*', Name.Class, '#pop') |
|
2761 ], |
|
2762 'type': [ |
|
2763 (r'[a-zA-Z_][a-zA-Z0-9_]*', Name, '#pop') |
|
2764 ], |
|
2765 } |
|
2766 |
|
2767 |
|
2768 class HybrisLexer(RegexLexer): |
|
2769 """ |
|
2770 For `Hybris <http://www.hybris-lang.org>`_ source code. |
|
2771 |
|
2772 *New in Pygments 1.4.* |
|
2773 """ |
|
2774 |
|
2775 name = 'Hybris' |
|
2776 aliases = ['hybris', 'hy'] |
|
2777 filenames = ['*.hy', '*.hyb'] |
|
2778 mimetypes = ['text/x-hybris', 'application/x-hybris'] |
|
2779 |
|
2780 flags = re.MULTILINE | re.DOTALL |
|
2781 |
|
2782 tokens = { |
|
2783 'root': [ |
|
2784 # method names |
|
2785 (r'^(\s*(?:function|method|operator\s+)+?)' |
|
2786 r'([a-zA-Z_][a-zA-Z0-9_]*)' |
|
2787 r'(\s*)(\()', bygroups(Name.Function, Text, Operator)), |
|
2788 (r'[^\S\n]+', Text), |
|
2789 (r'//.*?\n', Comment.Single), |
|
2790 (r'/\*.*?\*/', Comment.Multiline), |
|
2791 (r'@[a-zA-Z_][a-zA-Z0-9_\.]*', Name.Decorator), |
|
2792 (r'(break|case|catch|next|default|do|else|finally|for|foreach|of|' |
|
2793 r'unless|if|new|return|switch|me|throw|try|while)\b', Keyword), |
|
2794 (r'(extends|private|protected|public|static|throws|function|method|' |
|
2795 r'operator)\b', Keyword.Declaration), |
|
2796 (r'(true|false|null|__FILE__|__LINE__|__VERSION__|__LIB_PATH__|' |
|
2797 r'__INC_PATH__)\b', Keyword.Constant), |
|
2798 (r'(class|struct)(\s+)', |
|
2799 bygroups(Keyword.Declaration, Text), 'class'), |
|
2800 (r'(import|include)(\s+)', |
|
2801 bygroups(Keyword.Namespace, Text), 'import'), |
|
2802 (r'(gc_collect|gc_mm_items|gc_mm_usage|gc_collect_threshold|' |
|
2803 r'urlencode|urldecode|base64encode|base64decode|sha1|crc32|sha2|' |
|
2804 r'md5|md5_file|acos|asin|atan|atan2|ceil|cos|cosh|exp|fabs|floor|' |
|
2805 r'fmod|log|log10|pow|sin|sinh|sqrt|tan|tanh|isint|isfloat|ischar|' |
|
2806 r'isstring|isarray|ismap|isalias|typeof|sizeof|toint|tostring|' |
|
2807 r'fromxml|toxml|binary|pack|load|eval|var_names|var_values|' |
|
2808 r'user_functions|dyn_functions|methods|call|call_method|mknod|' |
|
2809 r'mkfifo|mount|umount2|umount|ticks|usleep|sleep|time|strtime|' |
|
2810 r'strdate|dllopen|dlllink|dllcall|dllcall_argv|dllclose|env|exec|' |
|
2811 r'fork|getpid|wait|popen|pclose|exit|kill|pthread_create|' |
|
2812 r'pthread_create_argv|pthread_exit|pthread_join|pthread_kill|' |
|
2813 r'smtp_send|http_get|http_post|http_download|socket|bind|listen|' |
|
2814 r'accept|getsockname|getpeername|settimeout|connect|server|recv|' |
|
2815 r'send|close|print|println|printf|input|readline|serial_open|' |
|
2816 r'serial_fcntl|serial_get_attr|serial_get_ispeed|serial_get_ospeed|' |
|
2817 r'serial_set_attr|serial_set_ispeed|serial_set_ospeed|serial_write|' |
|
2818 r'serial_read|serial_close|xml_load|xml_parse|fopen|fseek|ftell|' |
|
2819 r'fsize|fread|fwrite|fgets|fclose|file|readdir|pcre_replace|size|' |
|
2820 r'pop|unmap|has|keys|values|length|find|substr|replace|split|trim|' |
|
2821 r'remove|contains|join)\b', Name.Builtin), |
|
2822 (r'(MethodReference|Runner|Dll|Thread|Pipe|Process|Runnable|' |
|
2823 r'CGI|ClientSocket|Socket|ServerSocket|File|Console|Directory|' |
|
2824 r'Exception)\b', Keyword.Type), |
|
2825 (r'"(\\\\|\\"|[^"])*"', String), |
|
2826 (r"'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'", String.Char), |
|
2827 (r'(\.)([a-zA-Z_][a-zA-Z0-9_]*)', |
|
2828 bygroups(Operator, Name.Attribute)), |
|
2829 (r'[a-zA-Z_][a-zA-Z0-9_]*:', Name.Label), |
|
2830 (r'[a-zA-Z_\$][a-zA-Z0-9_]*', Name), |
|
2831 (r'[~\^\*!%&\[\]\(\)\{\}<>\|+=:;,./?\-@]+', Operator), |
|
2832 (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float), |
|
2833 (r'0x[0-9a-f]+', Number.Hex), |
|
2834 (r'[0-9]+L?', Number.Integer), |
|
2835 (r'\n', Text), |
|
2836 ], |
|
2837 'class': [ |
|
2838 (r'[a-zA-Z_][a-zA-Z0-9_]*', Name.Class, '#pop') |
|
2839 ], |
|
2840 'import': [ |
|
2841 (r'[a-zA-Z0-9_.]+\*?', Name.Namespace, '#pop') |
|
2842 ], |
|
2843 } |