Changes between Version 4 and Version 5 of Ada/Gela_Asis

Show
Ignore:
Author:
maxr (IP: 213.154.201.133)
Timestamp:
05/31/08 13:54:36 (2 years ago)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Ada/Gela_Asis

    v4 v5  
    1616   создает неявные (implicit) конструкции и т.д). 
    1717 * Финальный шлифовочный проход, доделывает то, что трудно реализовать до момента разрешения имен. 
     18'''Спецификации''' предопределенного окружения языка. 
    1819 
    1920''Вообще может стоить для каждого елемента сделать отдельную страницу и там красиво их описать (модули из которых состоят, алгоритмы работы и т.д., потому что я например о них понятия неимею).'' 
    6970Нужно реализовать репозиторий модулей компиляции, в который модуль будет помещяться один раз, затем может участвовать в запросах "на уровне модулей компиляции" и быть в контексте ASIS без построения AST. Построение AST будет выполняться по запросу Asis.Element.Unit_Declaration. Либо будет зачитан из бинарного файла, куда попадет при первом разборе 
    7071 
     72При работе ASIS приложения необходимы спецификации предопределенного 
     73окружения языка. Gela предоставляет независимые от реализации спецификации, 
     74полученные из ARM с минимальными коррекциями: 
     75  * Для примитивных типов и констант, где ARM гласит  
     76    ''implementation-defined'' мы оставляем конструкцию '''implementation-defined''', 
     77    но помечаем ее в ASIS как Is_Part_Of_Implicit 
     78  * Для приватных типов и отложенных констант 
     79    зависящих от реализации в приватной части мы указываем 
     80    `pragma Import (Ada, Type_Name);` 
     81  * Для приватных типов в настраиваемых пакетах (где мы, наверное, не сможем 
     82    реализовать pragma Import) в приватной части идет 
     83    `type Type_Name is null record;` 
     84Спецификации находятся в source:trunk/tendra/src/lib/libada/spec . Там же в подкаталогах спецификации устаревших 
     85пакетов и дополнений (Annex). Пока не придумал механизм, позволяющий при использовании Gela ASIS задавать 
     86зелаемый набор дополнений, кроме как перечислить их в опциях -I''/путь'' 
     87 
     88 
    7189== !ToDo ==  
    7290Добавить поддержку Unicode в '''лексер'''. Для этого либо написать его вручную, либо сделать свой aflex, т.к. в нормальном разобраться у меня не вышло. Вадим взялся за это дело, вот ему тикет #85 
     91