Module: CodeModels

Defined in:
lib/codemodels/query_serialized.rb,
lib/codemodels/parsing.rb,
lib/codemodels/version.rb,
lib/codemodels/language.rb,
lib/codemodels/metamodel.rb,
lib/codemodels/foreign_ast.rb,
lib/codemodels/serialization.rb,
lib/codemodels/model_building.rb,
lib/codemodels/info_extraction.rb

Overview

This module permits to manipulate Objects serialized as Hash

Defined Under Namespace

Modules: CodeModelsReflectionInfo, InfoExtraction, ModelBuilding, ParserWrapper, QuerySerialized, Serialization Classes: CodeModelsAstNode, Language, Parser, ParsingError, Position, SourceInfo, UnknownNodeType

Constant Summary collapse

VERSION =
"0.2.2"
@@languages =
[]

Class Method Summary collapse

Class Method Details

.enable_foreign_asts(clazz) ⇒ Object



5
6
7
8
9
# File 'lib/codemodels/foreign_ast.rb', line 5

def self.enable_foreign_asts(clazz)
	clazz.class_eval do
		contains_many_uni 'foreign_asts', CodeModelsAstNode		
	end
end

.parse_file(path) ⇒ Object



59
60
61
62
63
# File 'lib/codemodels/language.rb', line 59

def self.parse_file(path)
	l = @@languages.find {|l| l.can_parse?(path) }
	raise "I don't know how to parse #{path}. Languages known: #{@@languages.map(&:name)}" unless l
	l.parser.parse_file(path)
end

.register_language(language) ⇒ Object



51
52
53
# File 'lib/codemodels/language.rb', line 51

def self.register_language(language)
	@@languages << language
end

.registered_languagesObject



55
56
57
# File 'lib/codemodels/language.rb', line 55

def self.registered_languages
	@@languages
end