OpenCores
URL https://opencores.org/ocsvn/soc_maker/soc_maker/trunk

Subversion Repositories soc_maker

[/] [soc_maker/] [trunk/] [lib/] [soc_maker.rb] - Diff between revs 3 and 7

Show entire file | Details | Blame | View Log

Rev 3 Rev 7
Line 41... Line 41...
#         (see SOCMaker::load)
#         (see SOCMaker::load)
#       - creating objects from YAML files/strings
#       - creating objects from YAML files/strings
#         (see from_f, from_s)
#         (see from_f, from_s)
#       - creating YAML files from objects
#       - creating YAML files from objects
#         (see SOCMaker::YAML_EXT::write_yaml)
#         (see SOCMaker::YAML_EXT::write_yaml)
#       - error-types and functions
 
#         (see SOCMaker::ERR)
 
#
#
#
#
#
#
###############################################################
###############################################################
require 'logger'
require 'logger'
Line 102... Line 100...
          YAML::load( yaml_obj_str )
          YAML::load( yaml_obj_str )
          o = YAML::load( yaml_obj_str )
          o = YAML::load( yaml_obj_str )
 
 
          # ensure, that we load only our classes
          # ensure, that we load only our classes
          if SOCMaker::conf[ :yaml_classes ].include?( o.class )
          if SOCMaker::conf[ :yaml_classes ].include?( o.class )
            o.verify
            #o.verify
            objs << o
            objs << o
          else
          else
            SOCMaker::logger.warn( "Tried to load something, which does not belong to #{SOCMaker::conf[ :app_name ]}" )
            SOCMaker::logger.warn( "Tried to load something, which does not belong to #{SOCMaker::conf[ :app_name ]}" )
          end
          end
        rescue ArgumentError, Psych::SyntaxError #=> e
        rescue ArgumentError, Psych::SyntaxError => e
          #p e
 
          SOCMaker::logger.error( 'YAML loading failed, invalid YAML syntax?' )
          SOCMaker::logger.error( 'YAML loading failed, invalid YAML syntax?' )
 
          SOCMaker::logger.error( ">>> #{e.to_s} <<<" )
          raise ERR::YAMLParseError
          raise ERR::YAMLParseError
        else
        else
        end
        end
      end
      end
 
 
Line 160... Line 158...
      File.open( path, 'w') {|f| f.write SOCMaker::YPP.from_yaml( YAML.dump( self ) ) }
      File.open( path, 'w') {|f| f.write SOCMaker::YPP.from_yaml( YAML.dump( self ) ) }
    end
    end
  end
  end
 
 
 
 
  #
 
  # This sub-module contains some error-functionallity,
 
  # which is used in different classes via mixins.
 
  #
 
  # serr_if  means  raise Structure ERRor IF ...
 
  # verr_if  means  raise Value ERRor IF ...
 
  # lerr_if  means  raise Library ERRor IF ...
 
  # perr_if  mean   raise Processing ERRor IF
 
  module ERR
 
    class YAMLParseError < RuntimeError
 
    end
 
 
 
    class StructureError < RuntimeError
 
      attr :name
 
      attr :field
 
      def initialize( name, field, message )
 
        super message
 
        @name   = name
 
        @field  = field
 
       # p message
 
        SOCMaker::logger.error( "StructureError raised: " + message + " (#{name},#{field})" )
 
      end
 
      def to_s
 
        "->#{@name}:#{@field}"
 
      end
 
    end
 
 
 
    class LibError < RuntimeError
 
      attr :name
 
      def initialize( requested, message )
 
        super message
 
        @name = requested
 
        SOCMaker::logger.error( "LibError raised: " + message + " (#{requested})" )
 
      end
 
      def to_s
 
        "->#{@name}"
 
      end
 
    end
 
 
 
    class ProcessingError < RuntimeError
 
      def initialize( message )
 
        super message
 
        SOCMaker::logger.error( "ProcessingError raised: " + message )
 
      end
 
    end
 
 
 
    class ValueError < RuntimeError
 
      attr :name
 
      attr :field
 
      def initialize( name, field, message )
 
        super message
 
        @name = name
 
        @field = field
 
        SOCMaker::logger.error( "ValueError raised: " + message + " (#{name},#{field})" )
 
      end
 
      def to_s
 
        "->#{@name}:#{@field}"
 
      end
 
    end
 
 
 
 
 
 
 
    def serr_if( res, msg, o={} )
 
      o = { instance: '??', field: '??' }.merge( o )
 
      if !!( res )
 
        raise  StructureError.new( o[:instance], o[:field], msg )
 
      end
 
    end
 
 
 
    def verr_if( res, msg, o={})
 
      o = { instance: '??', field: '??' }.merge( o )
 
      if !!( res )
 
        raise ValueError.new( o[:instance], o[:field], msg )
 
      end
 
    end
 
 
 
    def lerr_if( res, msg, o={})
 
      o = { requested: '??' }.merge( o )
 
      if !!( res )
 
        raise LibError.new( o[:requested], msg )
 
      end
 
    end
 
 
 
    def perr_if( res, msg )
 
      if !!( res )
 
        raise ProcessingError.new( msg )
 
      end
 
    end
 
 
 
  end # module ERR
 
 
 
 
 
 
 
 
 
  # :stopdoc:
  # :stopdoc:
Line 297... Line 205...
  end
  end
 
 
  def self.require_all_libs
  def self.require_all_libs
    file  = ::File.basename(__FILE__, '.*')
    file  = ::File.basename(__FILE__, '.*')
    dir = ::File.dirname(__FILE__)
    dir = ::File.dirname(__FILE__)
    %w[ ypp         lib_inc
    %w[ err         ypp
        component
        lib_inc     component
        core_def    core_inst
        core_def    core_inst
        hdl_file    ifc_def
        hdl_file    ifc_def
        ifc_port    ifc_spc
        ifc_port    ifc_spc
        soc_def     parameter
        soc_def     parameter
        sparameter  hdl_coder
        sparameter  hdl_coder

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.