| Index: grit/gather/regexp.py
|
| diff --git a/grit/gather/regexp.py b/grit/gather/regexp.py
|
| deleted file mode 100644
|
| index 30488a610fb2b2cc917d62d229b343b387ceef5a..0000000000000000000000000000000000000000
|
| --- a/grit/gather/regexp.py
|
| +++ /dev/null
|
| @@ -1,85 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -'''A baseclass for simple gatherers based on regular expressions.
|
| -'''
|
| -
|
| -import re
|
| -
|
| -from grit.gather import skeleton_gatherer
|
| -
|
| -
|
| -class RegexpGatherer(skeleton_gatherer.SkeletonGatherer):
|
| - '''Common functionality of gatherers based on parsing using a single
|
| - regular expression.
|
| - '''
|
| -
|
| - DescriptionMapping_ = {
|
| - 'CAPTION' : 'This is a caption for a dialog',
|
| - 'CHECKBOX' : 'This is a label for a checkbox',
|
| - 'CONTROL': 'This is the text on a control',
|
| - 'CTEXT': 'This is a label for a control',
|
| - 'DEFPUSHBUTTON': 'This is a button definition',
|
| - 'GROUPBOX': 'This is a label for a grouping',
|
| - 'ICON': 'This is a label for an icon',
|
| - 'LTEXT': 'This is the text for a label',
|
| - 'PUSHBUTTON': 'This is the text for a button',
|
| - }
|
| -
|
| - # Contextualization elements. Used for adding additional information
|
| - # to the message bundle description string from RC files.
|
| - def AddDescriptionElement(self, string):
|
| - if self.DescriptionMapping_.has_key(string):
|
| - description = self.DescriptionMapping_[string]
|
| - else:
|
| - description = string
|
| - if self.single_message_:
|
| - self.single_message_.SetDescription(description)
|
| - else:
|
| - if (self.translatable_chunk_):
|
| - message = self.skeleton_[len(self.skeleton_) - 1].GetMessage()
|
| - message.SetDescription(description)
|
| -
|
| - def _RegExpParse(self, regexp, text_to_parse):
|
| - '''An implementation of Parse() that can be used for resource sections that
|
| - can be parsed using a single multi-line regular expression.
|
| -
|
| - All translateables must be in named groups that have names starting with
|
| - 'text'. All textual IDs must be in named groups that have names starting
|
| - with 'id'. All type definitions that can be included in the description
|
| - field for contextualization purposes should have a name that starts with
|
| - 'type'.
|
| -
|
| - Args:
|
| - regexp: re.compile('...', re.MULTILINE)
|
| - text_to_parse:
|
| - '''
|
| - chunk_start = 0
|
| - for match in regexp.finditer(text_to_parse):
|
| - groups = match.groupdict()
|
| - keys = groups.keys()
|
| - keys.sort()
|
| - self.translatable_chunk_ = False
|
| - for group in keys:
|
| - if group.startswith('id') and groups[group]:
|
| - self._AddTextualId(groups[group])
|
| - elif group.startswith('text') and groups[group]:
|
| - self._AddNontranslateableChunk(
|
| - text_to_parse[chunk_start : match.start(group)])
|
| - chunk_start = match.end(group) # Next chunk will start after the match
|
| - self._AddTranslateableChunk(groups[group])
|
| - elif group.startswith('type') and groups[group]:
|
| - # Add the description to the skeleton_ list. This works because
|
| - # we are using a sort set of keys, and because we assume that the
|
| - # group name used for descriptions (type) will come after the "text"
|
| - # group in alphabetical order. We also assume that there cannot be
|
| - # more than one description per regular expression match.
|
| - self.AddDescriptionElement(groups[group])
|
| -
|
| - self._AddNontranslateableChunk(text_to_parse[chunk_start:])
|
| -
|
| - if self.single_message_:
|
| - self.skeleton_.append(self.uberclique.MakeClique(self.single_message_))
|
| -
|
|
|