Skip to content

Commit

Permalink
Add package body and declaration remaining functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
Chris44442 committed May 30, 2024
1 parent d260d93 commit 042dfbe
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 17 deletions.
8 changes: 4 additions & 4 deletions vhdl_lang/src/analysis/declarative.rs
Original file line number Diff line number Diff line change
Expand Up @@ -614,11 +614,11 @@ impl<'a, 't> AnalyzeContext<'a, 't> {
scope.add(ent, diagnostics);
}
}
Declaration::PackageDeclaration(..) => {
// TODO
Declaration::PackageDeclaration(ref mut unit) => {
self.analyze_package(unit, diagnostics)?;
}
Declaration::PackageBody(..) => {
// TODO
Declaration::PackageBody(ref mut unit) => {
self.analyze_package_body(unit, diagnostics)?;
}
Declaration::Configuration(..) => {}
Declaration::View(view) => {
Expand Down
4 changes: 2 additions & 2 deletions vhdl_lang/src/analysis/design_unit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ impl<'a, 't> AnalyzeContext<'a, 't> {
Ok(())
}

fn analyze_package(
pub fn analyze_package(
&self,
unit: &mut PackageDeclaration,
diagnostics: &mut dyn DiagnosticHandler,
Expand Down Expand Up @@ -297,7 +297,7 @@ impl<'a, 't> AnalyzeContext<'a, 't> {
Ok(())
}

fn analyze_package_body(
pub fn analyze_package_body(
&self,
unit: &mut PackageBody,
diagnostics: &mut dyn DiagnosticHandler,
Expand Down
12 changes: 4 additions & 8 deletions vhdl_lang/src/ast/search.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1075,19 +1075,15 @@ impl Search for Declaration {
return_if_found!(open_info.search(ctx, searcher));
return_if_found!(file_name.search(ctx, searcher));
}

Declaration::Package(ref package_instance) => {
return_if_found!(package_instance.search(ctx, searcher));
}

Declaration::PackageDeclaration(ref package_instance) => {
return_if_found!(package_instance.search(ctx, searcher)); // @TODO
Declaration::PackageDeclaration(ref decl) => {
return_if_found!(decl.search(ctx, searcher));
}

Declaration::PackageBody(ref package_instance) => {
return_if_found!(package_instance.search(ctx, searcher)); // @TODO
Declaration::PackageBody(ref body) => {
return_if_found!(body.search(ctx, searcher));
}

Declaration::Configuration(_) => {
// @TODO
}
Expand Down
19 changes: 16 additions & 3 deletions vhdl_lang/src/named_entity.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ use crate::ast::{
AttributeDeclaration, AttributeSpecification, ComponentDeclaration, Declaration, Designator,
FileDeclaration, HasIdent, Ident, InterfaceFileDeclaration, InterfacePackageDeclaration,
ModeViewDeclaration, ObjectClass, ObjectDeclaration, PackageInstantiation, SubprogramBody,
SubprogramInstantiation, SubprogramSpecification, TypeDeclaration, WithDecl,
SubprogramInstantiation, SubprogramSpecification, TypeDeclaration, WithDecl, PackageDeclaration,
PackageBody
};
use crate::ast::{ExternalObjectClass, InterfaceDeclaration, InterfaceObjectDeclaration};
use crate::data::*;
Expand Down Expand Up @@ -631,8 +632,8 @@ impl HasEntityId for Declaration {
Declaration::SubprogramBody(body) => body.ent_id(),
Declaration::SubprogramInstantiation(decl) => decl.ent_id(),
Declaration::Package(pkg) => pkg.ent_id(),
Declaration::PackageDeclaration(_) => None, // @TODO
Declaration::PackageBody(_) => None, // @TODO
Declaration::PackageDeclaration(pkg) => pkg.ent_id(),
Declaration::PackageBody(pkg) => pkg.ent_id(),
Declaration::Use(_) => None,
Declaration::Configuration(_) => None,
Declaration::View(decl) => decl.ent_id(),
Expand All @@ -652,6 +653,18 @@ impl HasEntityId for PackageInstantiation {
}
}

impl HasEntityId for PackageDeclaration {
fn ent_id(&self) -> Option<EntityId> {
self.ident.decl.get()
}
}

impl HasEntityId for PackageBody {
fn ent_id(&self) -> Option<EntityId> {
self.ident.decl.get()
}
}

impl HasEntityId for SubprogramBody {
fn ent_id(&self) -> Option<EntityId> {
self.specification.ent_id()
Expand Down

0 comments on commit 042dfbe

Please sign in to comment.