def create_parser(self):
        # The DefTree and reader are not under test, but simple enough to use directly
        self.deftree = DefTree.new()
        self.parser = DefinitionParser.new(self.deftree, debug_mode=True)

        # The reader is not under test, but it provides a good way to feed strings to the parser
        self.reader = LineReader.new(self.parser)
Example #2
0
    def create_parser(self, configs = Util.Container()):
        # The manifest and reader are not under test, but simple enough to use directly
        self.manifest = Helpers.new_manifest()
        self.configs = Helpers.new_settings(configs)
        self.parser = ManifestParser.new(self.manifest, self.configs, debug_mode=True, validate_files=False)

        # The reader is not under test, but it provides a good way to feed strings to the parser
        self.reader = LineReader.new(self.parser)
Example #3
0
def build_definition(in_fname):
    """
      Build a definition
    """
    def_tree = DefTree.new(in_fname)
    parser = DefinitionParser.new(def_tree)
    reader = LineReader.new(parser)

    reader.read_file_by_name(in_fname)
    return def_tree
Example #4
0
def build_config(in_fname):
    """
      Build a config
    """
    config = Config.new(in_fname)
    parser = ConfigParser.new(config)
    reader = LineReader.new(parser)

    reader.read_file_by_name(in_fname)
    return config
Example #5
0
def build_manifest(in_fname, settings, pkg_root, validate_files=True):
    """
      Build a manifest with the given settings
    """
    manifest = Manifest.new(in_fname, pkg_root)
    parser = ManifestParser.new(manifest,
                                settings,
                                validate_files=validate_files,
                                def_parser=build_definition)
    reader = LineReader.new(parser)

    reader.read_file_by_name(in_fname)
    return manifest
Example #6
0
    def _include_file(self, filename):
        """
            Include the contents of another file as if it was directly placed in this file
        """
        abs_filename = Util.get_abs_path(filename, self.prj_root)

        # Save the project root so that files paths can be relative to the included file
        old_prj_root = self.prj_root
        self.prj_root = os.path.dirname(abs_filename)

        # Read the file using this object as the parser
        reader = LineReader.new(self, do_end=False)
        reader.read_file_by_name(abs_filename)

        # Restore the original project root
        self.prj_root = old_prj_root
Example #7
0
def read_project(in_fname, out_dir):
    """
        Read project

        @return Tuple containing (Project object with parsed result,
            Project directory, output directory)
    """
    project = Project.new(in_fname, err_fatal=True)
    parser = ProjectParser.new(project)
    reader = LineReader.new(parser)

    reader.read_file_by_name(in_fname)
    cwd = os.getcwd()
    prj_dir = Util.get_abs_path(os.path.dirname(project.get_filename()), cwd)
    out_dir = Util.get_abs_path(out_dir, cwd)

    return (project, prj_dir, out_dir)
Example #8
0
    def _include_file(self, filename):
        """
            Include the contents of another file as if it was directly placed in this file
        """
        abs_filename = Util.get_abs_path(filename, self.pkg_root)

        if not self.validate_files:
            # For testing, just add the include file as a source
            self.debug("ADD_AUX: {}".format(abs_filename))
            self.manifest.add_entry("aux_files", abs_filename)
            return

        # Save the package root so that files paths can be relative to the included file
        old_pkg_root = self.pkg_root
        self.pkg_root = os.path.dirname(abs_filename)

        # Read the file using this object as the parser
        reader = LineReader.new(self, do_end=False)
        reader.read_file_by_name(abs_filename)

        # Restore the original package root
        self.pkg_root = old_pkg_root
Example #9
0
 def setUp(self):
     self.parser = Helpers.new_parser()
     self.reader = LineReader.new(self.parser)
    def create_parser(self):
        self.project = Project.new()
        self.parser = ProjectParser.new(self.project, debug_mode=True)

        # The reader is not under test, but it provides a good way to feed strings to the parser
        self.reader = LineReader.new(self.parser)