Re[7]: родил
От: xvost Германия http://www.jetbrains.com/company/people/Pasynkov_Eugene.html
Дата: 28.03.08 05:12
Оценка:
Здравствуйте, k.sid, Вы писали:

KS>Кстати, у меня возникла некая путаница в терминах: AST(Abstract Syntax Tree) и PSI(?) — это одно и тоже? А у иерархии сущностей какая аббревиатура?)


Не совсем. AST — это синтаксическое дерево, результат парсинга исходного текста.
PSI (Program Structure Interface) — Это все вместе. И AST, и "иерархия сущностей", и методы работы с ними, и т.д. Просто обобщенной название подсистемы проекта.

KS>И заодно маленько не понятно, почему я могу, допустим, поменять имя IClass-а, IMethod-а и т.д. (т.е. через иерархию сущностей), но не могу поменять их модификаторы?


Не можешь. Иерархия сущностей (IDeclaredElement) — исключительно readonly. Что-либо менять можно только в AST, что имеет прямое отражение в тексте файла. И declared element'ы из этого потом выводятся.

KS>Т.е., получается вроде как AST — это первичная вещь, а иерархия сущностей генерится с нее и будет валидна ровно до

тех пор пока AST не поменяется, вернее пока не поменяется тот узел/узлы с которых генерилась эта конкретная сущность?

Именно так. Плюс в дополнение declared element'ы генерируются из метаданных assembly'ей.

Только насчет "первичности" — первичен ТЕКСТ пользовательской программы. AST из него тоже строится (т.е. парсится текст) по мере необходимости
С уважением, Евгений
JetBrains, Inc. "Develop with pleasure!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.