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
- .parse_file(path) ⇒ Object
-
.register_language(language) ⇒ Object
It avoids multiple registration of the same class.
- .registered_languages ⇒ Object
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_languages ⇒ Object
29 30 31 |
# File 'lib/codemodels/language.rb', line 29 def self.registered_languages @@languages end |