Metadata-Version: 1.0
Name: LangUtil
Version: 0.1.2
Summary: Helpers for generating code.
Home-page: http://pypi.python.org/pypi/LangUtil/
Author: Andrew Udvare
Author-email: audvare@gmail.com
License: LICENSE.txt
Description: Language Utility
        ================
        
        Currently, this utility only outputs equivalent PHP code.
        
        PHP
        ---
        
        .. code:: python
        
            import langutil.php
        
        Converting 'scalars'
        ~~~~~~~~~~~~~~~~~~~~
        
        A scalar in PHP is anything that is not an object (in PHP:
        ``!is_object(1) === true``).
        
        .. code:: python
        
            # Booleans
            langutil.php.generate_scalar(True) == 'true'
            langutil.php.generate_scalar(True, True) == 'TRUE'
        
            # None turns into null
            langutil.php.generate_scalar(None) == 'null'
            langutil.php.generate_scalar(None, True) == 'null'
        
            # Numbers are untouched
            langutil.php.generate_scalar(1) == '1'
            langutil.php.generate_scalar(2.5) == '2.5'
        
            # Strings use single quotes unless it is necessary to use double quotes
            # Double quotes are only necessary if the character has any control codes
            langutil.php.generate_scalar('php code!') == ''php code!''
            langutil.php.generate_scalar('this string has\nnew lines') == '"this string has\nnew lines"'
        
        Converting lists, tuples, dictionaries, etc
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        These types all resolve to the same type in PHP: the 'PHP array'. The
        ``generate_array()`` function handles recursive structures but may fail
        to detect special objects' underlying structure unless they implement
        methods like ``__dict__()``.
        
        All strings (including keys for dictionaries) will default to single
        quotes unless double quotes are necessary.
        
        The output will use new lines and two-space indents.
        
        .. code:: python
        
            langutil.php.generate_array([]) == 'array();'
            langutil.php.generate_array(tuple([])) == 'array();'
            langutil.php.generate_array(set(tuple([]))) == 'array();'
            langutil.php.generate_array({}) == 'array();'
        
        List/set/tuple conversion
        ^^^^^^^^^^^^^^^^^^^^^^^^^
        
        .. code:: python
        
            langutil.php.generate_array([
                1,
                2,
            ])
        
        Output:
        
        .. code:: php
        
            array(
                1,
                2,
            );
        
        Dictionary conversion
        ^^^^^^^^^^^^^^^^^^^^^
        
        For dictionaries, order of keys is not guaranteed. In PHP, hashes are
        ordered.
        
        .. code:: python
        
            langutil.php.generate_array({
              'special': '\n',
              'special\x05': 'a string',
              'key': 1,
              'list': [1,2,3],
            })
        
        Output:
        
        .. code:: php
        
            array(
              'key' => 1,
              'list' => array(
                1,
                2,
                3,
              ),
              "special\x05" => 'a string',
              'special' => "\n",
            );
        
        
Platform: UNKNOWN
