Class: BitClust::RRDParser

Inherits:
Object show all
Includes:
NameUtils, ParseUtils
Defined in:
lib/bitclust/rrdparser.rb

Overview

Parser for Ruby API reference file (refm/api/src/*)

Direct Known Subclasses

MDParser

Defined Under Namespace

Classes: Chunk, Context, Signature

Constant Summary

Constants included from NameUtils

NameUtils::CHAR_TO_MARK, NameUtils::CHAR_TO_NAME, NameUtils::CLASS_NAME_RE, NameUtils::CLASS_PATH_RE, NameUtils::CONST_PATH_RE, NameUtils::CONST_RE, NameUtils::GVAR_RE, NameUtils::LIBNAME_RE, NameUtils::MARK_TO_CHAR, NameUtils::MARK_TO_NAME, NameUtils::METHOD_NAME_RE, NameUtils::METHOD_SPEC_RE, NameUtils::MID, NameUtils::NAME_TO_CHAR, NameUtils::NAME_TO_MARK, NameUtils::TYPEMARK_RE

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ParseUtils

#parse_error

Methods included from NameUtils

build_method_id, classid2name, classname2id, classname?, decodeid, decodename_fs, decodename_url, display_typemark, encodeid, encodename_fs, encodename_rdocurl, encodename_url, functionname?, gvarname?, html_filename, libid2name, libname2id, libname?, method_spec?, methodid2classid, methodid2libid, methodid2mname, methodid2specparts, methodid2specstring, methodid2typechar, methodid2typemark, methodid2typename, methodname?, split_method_id, split_method_spec, typechar2mark, typechar2name, typechar?, typemark2char, typemark2name, typemark?, typename2char, typename2mark, typename?

Constructor Details

#initialize(db) ⇒ RRDParser

Returns a new instance of RRDParser.



71
72
73
# File 'lib/bitclust/rrdparser.rb', line 71

def initialize(db)
  @db = db
end

Instance Attribute Details

#dbObject (readonly)

Returns the value of attribute db.



74
75
76
# File 'lib/bitclust/rrdparser.rb', line 74

def db
  @db
end

Instance Method Details

#parse(f, libname, params = {}) ⇒ Object



82
83
84
85
86
87
# File 'lib/bitclust/rrdparser.rb', line 82

def parse(f, libname, params = {})
  @context = Context.new(@db, libname)
  f = LineInput.new(Preprocessor.wrap(f, params))
  do_parse f
  @context.library
end

#parse_file(path, libname, params = {}) ⇒ Object



76
77
78
79
80
# File 'lib/bitclust/rrdparser.rb', line 76

def parse_file(path, libname, params = {})
  fopen(path, 'r:UTF-8') {|f|
    return parse(f, libname, params).tap { |lib| lib.source_location = Location.new(path, 1) }
  }
end