diff options
author | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:03:40 +0000 |
---|---|---|
committer | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:03:40 +0000 |
commit | f8233551a19ce4ead9f809d39cff49a94126d141 (patch) | |
tree | 68e751acd033f8c0b99f935fe578ae2b32bef338 /bindings/lang_php5_helpers/php_code.py | |
parent | 21607461fee5e76640aff9bee710119c07fcc69f (diff) | |
download | lasso-f8233551a19ce4ead9f809d39cff49a94126d141.tar.gz lasso-f8233551a19ce4ead9f809d39cff49a94126d141.tar.xz lasso-f8233551a19ce4ead9f809d39cff49a94126d141.zip |
[project @ fpeters@0d.be-20071031114522-jkrmvbpphcm0rms8]
moved identifier name formatting functions to their own module, so they are not
duplicated everywhere.
Original author: Frederic Peters <fpeters@0d.be>
Date: 2007-10-31 12:45:22.367000+01:00
Diffstat (limited to 'bindings/lang_php5_helpers/php_code.py')
-rw-r--r-- | bindings/lang_php5_helpers/php_code.py | 33 |
1 files changed, 7 insertions, 26 deletions
diff --git a/bindings/lang_php5_helpers/php_code.py b/bindings/lang_php5_helpers/php_code.py index bbd94958..28f9f77c 100644 --- a/bindings/lang_php5_helpers/php_code.py +++ b/bindings/lang_php5_helpers/php_code.py @@ -20,28 +20,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import re -import string - -def format_attribute(var): - if '_' in var: - return format_underscore_as_py(var) - if var[0] in string.uppercase: - var = var[0].lower() + var[1:] - return var - -def format_underscore_as_py(var): - def rep(s): - return s.group(1)[0].upper() + s.group(1)[1:] - var = re.sub(r'_([A-Za-z0-9]+)', rep, var) - return var - -def format_as_underscored(var): - def rep(s): - return s.group(0)[0] + '_' + s.group(1).lower() - var = re.sub(r'[a-z0-9]([A-Z])', rep, var).lower() - var = var.replace('id_wsf2_', 'idwsf2_') - var = var.replace('_saslresponse', '_sasl_response') - return var + +import utils class PhpCode: def __init__(self, binding_data, fd): @@ -102,7 +82,7 @@ function cptrToPhp ($cptr) { print >> self.fd, '' def generate_constructors(self, klass): - method_prefix = format_as_underscored(klass.name) + '_' + method_prefix = utils.format_as_underscored(klass.name) + '_' for m in self.binding_data.functions: if m.name == method_prefix + 'new': php_args = [] @@ -167,7 +147,7 @@ function cptrToPhp ($cptr) { print >> self.fd, '' for m in klass.members: - mname = format_attribute(m[1]) + mname = utils.format_as_camelcase(m[1]) options = m[2] # Getters @@ -205,7 +185,7 @@ function cptrToPhp ($cptr) { pass # second pass on methods, real methods - method_prefix = format_as_underscored(klass.name) + '_' + method_prefix = utils.format_as_underscored(klass.name) + '_' for m in methods: if m.name.endswith('_new') or m.name.endswith('_new_from_dump') or \ m.name.endswith('_new_full'): @@ -248,7 +228,8 @@ function cptrToPhp ($cptr) { else: c_args = '' - print >> self.fd, ' public function %s(%s) {' % (format_underscore_as_py(mname), php_args) + print >> self.fd, ' public function %s(%s) {' % ( + utils.format_underscore_as_camelcase(mname), php_args) # FIXME: add php api documentation # if m.docstring: # print >> fd, " '''" |