Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [hibachi-dev] Hibachi Plans Questions

We originally used ASIS to provide the functionality for reference searches, however we found that it was very difficult to manage when dealing with constantly changing source files. The GNAT ASIS implementation that we used required that the source files first be compiled with a special flag to a tree file (.adt), which would then be loaded with other tree files into a context which could be used to search for declarations, references, etc. Anytime a file was changed the context would need to be reloaded, and in practice it didn't work very well for us.

We now plan on following the lead of JDT (Java) and CDT (C/C++) and implementing an API for creating ASTs for Ada source code, which will give us greater flexibility than what we have experienced with ASIS, as well as providing a good foundation for creating other tools.

Adam Haselhuhn


----- Original Message ----- From: "Luke A. Guest" <laguest@xxxxxxxxxxx>
To: "Hibachi Dev list" <hibachi-dev@xxxxxxxxxxx>
Sent: Thursday, April 10, 2008 12:56 PM
Subject: Re: [hibachi-dev] Hibachi Plans Questions


Yes, part of SPARK is annotations in comments. And yes, making some
modifications to the grammar would make it possible to parse those
annotations. I will also say that SPARK isn't just the addition of
annotations in comments - it also is a subset of Ada such that analysis
is easier.

Ah, so it's a bit more in the language also? Not just a subset of Ada
but also language extensions?

In this case, maybe a separate grammar. ANTLR v3 does have provisions
for hierarchical grammars, like inheritance, although I'm not sure if
this is the best way for you.

I am unfamiliar with ASIS so I can't answer the question. What were you
thinking would be the connection between SPARK, ASIS, and the need to
resolve symbols in translation?

ASIS can be used as the internal AST for an Ada compiler. AdaCore
actually implements ASIS on the side of GNAT as an interface into the
compiler, as this is also allowed as I understand it (I'm not all that
up to date with ASIS either). But using ASIS would provide access into
the actual compiler, thus giving you access to the symbol tables if
required. Incorporating this into an Eclipse plug-in might be what you
want in this case.

Luke.


_______________________________________________
hibachi-dev mailing list
hibachi-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/hibachi-dev



Back to the top