getLanguageDefinition() protected method

protected getLanguageDefinition ( $langName )
Esempio n. 1
0
 protected function getLanguageDefinition($langName)
 {
     $language = $this->loadYAML('/languages/' . $langName . '.amLanguage', 'language');
     $definition = $language['definition'];
     $base_definition = array('chunkRules' => array());
     $base_signature = array();
     if (is_array($language['signature']['inherits'])) {
         foreach ($language['signature']['inherits'] as $base) {
             $base = explode(':', $base);
             $bundle = new AMYBundle($this->supportPath, $base[0], $this->hostOS);
             $base_language = $bundle->getLanguageDefinition($base[1]);
             $base_signature = array_merge($base_language['signature'], $base_signature);
             $base_definition = array_merge($base_language['definition'], $base_definition);
             $base_definition['chunkRules'] = array_merge($base_language['definition']['chunkRules'], $base_definition['chunkRules']);
         }
     }
     $language['signature'] = array_merge($base_signature, $language['signature']);
     $language['definition'] = array_merge($base_definition, $language['definition']);
     $language['definition']['chunkRules'] = array_merge($base_definition['chunkRules'], $language['definition']['chunkRules']);
     return $language;
 }