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;
}