private function LoadTypeDefFromJson()
    {
        $typedef_def = Json::Decode(file_get_contents(
            $this->definitions_path . "type_definitions.json")
        );

        foreach($typedef_def as $header => $namespaces)
        {
            $this->symbols->AddHeader($header);
            
            foreach($namespaces as $namespace => $typedefs)
            {
                foreach($typedefs as $typedef_name => $typedef_data)
                {
                    if(!isset($typedef_data["description"]))
                        $typedef_data["description"] = "";
                    
                    $typedef = new Element\TypeDef(
                        $typedef_name,
                        $typedef_data["type"],
                        $typedef_data["description"]
                    );

                    $this->symbols->headers[$header]->AddTypeDef(
                        $typedef,
                        $namespace
                    );
                }
            }
        }

        unset($typedef_def);
    }