«... все узлы имеют аннотацию src, указывающую на физическое местоположение источника, все объявления могут иметь аннотацию объявления к их идентификатору логического местоположения ... « - это линия, взятая из статьи: M3: общая модель для анализа кода у мошенника.Альтернативная реализация аннотаций @src и @decl в модели M3
Однако при создании новой модели M3 для относительно простого языка, где все элементы исходного кода имеют свою собственную схему именования, и все типы элементов явно определены в AST, поэтому не нужно их решать отдельно. Будет ли тогда считаться «нормально», чтобы поместить местоположение физического исходного кода, поместите местоположение логического исходного кода в аннотацию @src, так как для всех узлов может быть создан логический исходный код и просто не использовать аннотацию @decl? Будет ли это считаться плохой реализацией модели M3, или это будет хорошо, потому что простой язык позволяет такое упрощение реализации модели M3?
Потому что в противном случае все узлы получат @src с физическим расположением исходного кода и @decl с логическим расположением исходного кода, загромождая AST, в то время как достаточно одного логического местоположения исходного кода.
Так что это не так, как будто я не использую аннотацию src, я использую ее, я просто помещаю в нее логическое расположение исходного кода вместо физического. Аннотации, которые я не использую, это аннотация объявления, так как тогда она станет устаревшей. Поскольку аннотация src по-прежнему используется, таблица объявлений M3 продолжает работать нормально. И пока ничего не получается. Поэтому я должен быть в порядке. – Nicasso
Mmm .. хорошо давайте выясним. Каким образом функциональность контура в Eclipse делает с этим дизайнерским решением? Работает ли он так, как ожидалось? – jurgenv