Здравствуйте, VVVa, Вы писали:
N>>Так и проверяет. Появилось объявление переменной — добавили. Типа — добавили. Видим идентификатор — пытаемся по тому, в какой он таблице, определить его роль.
N>>Закончился блок — почистили таблицы и пошли дальше.
VVV>Еле догнал если токен "int x;" свернулся парсером то заводим переменную и помечаем где она стоит... А потом если есть свёртка с элементом "int x;" то удаляем
а, где-то так.
VVV>а какие открытия может подскажите? именно для С
В C, наверно, самое путаное это логика препроцессора — все эти когда что раскрывается и с чем объединяется. После этого — лукап по таблицам, это переменная, тип или что-то другое, как тут описывали.
Но я не вижу глубинного смысла ограничиваться C.
VVV>"на эллиптических кривых" — Вы пошутили? причём тут криптография?
1. Не я, а автор комментария на хабре.
2. Не пошутил. Язык шаблонов C++ тьюринг-полный и в нём можно задать какие угодно работы, причём часть обработки идёт косвенно (по сути, компилятор решает заданное в виде уравнений).
Другой вопрос, что компилятор, скорее всего, имеет жёсткие ограничения на размер этой работы.
VVV>Ну я AST на списках наверное буду делать ... но как его обходить покуда не знаю ... может Матрицу смежности или Матрицу инцидентности придётся применять...
Почему на списках?
N>>Мнэээ, гражданин... не советую. Съедят.
VVV>А вдруг весело будет ...
"Странные праздники... Знобит меня от этого веселья." (c)