Module: CodeModels

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

Defined Under Namespace

Modules: ForeignAstExtensions, HostPositionExtensions, InfoExtraction, ModelBuilding, NavigationExtensions, Serialization, SourceInfoExtensions Classes: AbstractArtifact, CodeModelsAstNode, EmbeddedArtifact, FileArtifact, FileMapper, FilesSource, Language, NoLanguageRegistered, Parser, ParsingError, SourceInfo, SourcePoint, SourcePosition, UnknownNodeType

Constant Summary collapse

VERSION =
"0.2.3"
@@languages =
[]

Class Method Summary collapse

Class Method Details

.parse_file(path) ⇒ Object



41
42
43
44
45
# File 'lib/codemodels/language.rb', line 41

def self.parse_file(path)
	l = @@languages.find {|l| l.can_parse?(path) }
	raise NoLanguageRegistered.new(path) unless l
	l.parser.parse_file(path)
end

.register_language(language) ⇒ Object

It avoids multiple registration of the same class



24
25
26
27
# File 'lib/codemodels/language.rb', line 24

def self.register_language(language)
	return if @@languages.find {|l| l.is_a?(language.class)}
	@@languages << language
end

.registered_languagesObject



29
30
31
# File 'lib/codemodels/language.rb', line 29

def self.registered_languages
	@@languages
end