Module: CodeModels
- Defined in:
- lib/codemodels/parser.rb,
lib/codemodels/version.rb,
lib/codemodels/artifact.rb,
lib/codemodels/language.rb,
lib/codemodels/position.rb,
lib/codemodels/metamodel.rb,
lib/codemodels/comparison.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: ComparisonModule, ForeignAstExtensions, HostPositionExtensions, InfoExtraction, ModelBuilding, NavigationExtensions, Serialization, SourceInfoExtensions Classes: AbstractArtifact, CodeModelsAstNode, EmbeddedArtifact, FileArtifact, FileMapper, FilesSource, Language, NoLanguageRegistered, Parser, ParsingError, SourceInfo, SourcePoint, SourcePosition, StringArtifact, UnknownNodeType
Constant Summary collapse
- VERSION =
"0.2.6"- @@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
42 43 44 45 46 |
# File 'lib/codemodels/language.rb', line 42 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
25 26 27 28 |
# File 'lib/codemodels/language.rb', line 25 def self.register_language(language) return if @@languages.find {|l| l.is_a?(language.class)} @@languages << language end |
.registered_languages ⇒ Object
30 31 32 |
# File 'lib/codemodels/language.rb', line 30 def self.registered_languages @@languages end |