Package pygccxml :: Package parser |

# Source Code for Package pygccxml.parser

     1  # Copyright 2004-2008 Roman Yakovenko.
     2  # Distributed under the Boost Software License, Version 1.0. (See
     3  # accompanying file LICENSE_1_0.txt or copy at
     4  # http://www.boost.org/LICENSE_1_0.txt)
     5
     6  """Parser sub-package.
     7  """
     8
     9  from config import config_t
    10  from config import gccxml_configuration_t
    11
    12  from project_reader import COMPILATION_MODE
    13  from project_reader import project_reader_t
    14  from project_reader import file_configuration_t
    15  from project_reader import create_text_fc
    16  from project_reader import create_source_fc
    17  from project_reader import create_gccxml_fc
    18  from project_reader import create_cached_source_fc
    19
    20  from source_reader import source_reader_t
    21  from source_reader import gccxml_runtime_error_t
    22  from declarations_cache import cache_base_t
    23  from declarations_cache import file_cache_t
    24  from declarations_cache import dummy_cache_t
    25  from directory_cache import directory_cache_t
    26  #shortcut
    27  CONTENT_TYPE = file_configuration_t.CONTENT_TYPE
    28
    29
    30 -def parse( files
    31             , config=None
    32             , compilation_mode=COMPILATION_MODE.FILE_BY_FILE
    33             , cache=None ):
    34      """Parse header files.
    35
    36      @param files: The header files that should be parsed
    37      @type files: list of str
    38      @param config: Configuration object or None
    39      @type config: L{config_t}
    40      @param compilation_mode: Determines whether the files are parsed individually or as one single chunk
    41      @type compilation_mode: L{COMPILATION_MODE}
    42      @param cache: Declaration cache (None=no cache)
    43      @type cache: L{cache_base_t} or str
    44      @returns: Declarations
    45      """
    46
    47      if not config:
    48          config = config_t()
    49      parser = project_reader_t( config=config, cache=cache )
    50      answer = parser.read_files(files, compilation_mode)
    51      return answer
    52
    53 -def parse_string(content, config=None):
    54      if not config:
    55          config = config_t()
    56      parser = project_reader_t(config )
    57      return parser.read_string(content)
    58
    59 -def parse_xml_file( content, config=None ):
    60      parser = source_reader_t( config )
    61      return parser.read_xml_file( content )
    62