Mercury13, "а за то, существует ли поле x, ....., отвечает семантика."
Возможно. Но уже на момент лексического анализа составляется таблица символов. И в синтаксический анализатор попадает, собственно, не "поле икс", а "некий идентификатор с номером 123 из таблицы символов". В какой момент идентификатор признаётся полем я не знаю. Скорее всего в тот момент, когда синтаксический анализатор накладывает структуру класса на входной поток токенов. Условно, синтаксический анализатор видит слова "class", ID, "{", ID (тип данных), ID... И где-то в этот момент понимает, что ID это какая-то переменная того типа, что стоит слева. Наверное где-то в этот же момент синтаксический анализатор может сообразить, что всё ещё идёт процесс разбора класса, и признать переменную полем.
Но я не настоящий сварщик, просто книжку пару раз прочитал ;))
Сергей Соловьев, В принципе, приватные поля могут по разному именоваться. В Borland C++ Builder использовалась буква F: FWidth (например). Хотя за те 15 лет, что я в билдер не заглядывал, могло что-то поменяться.
Эмммм...
Почему-то всегда думал, что результатом синтаксического разбора является дерево, в котором просто написано "это идентификатор со значением name, это присваивание, а это ещё один идентификатор со значением name".
Но за идею спасибо, пойду ещё раз голову дракона полистаю.
Вроде там что-то было про попытку отличить локальные переменные друг от друга. Может и про параметры где-то было, только я пропустил.
Пума Тайланд, Хах, да. Я, в принципе, не против. Но размер моей пенсии будет, наверное, в 20 раз меньше, чем размер моей зарплаты. И на такие деньги я не проживу ;)
Представь себе, что не все люди развиваются по одному грейду в год. Я эти 20 лет потратил не только на работу, но и на то, чтобы сходить в аспирантуру, по-восстанавливаться после выгорания, завести ребёнка, позаниматься хобби. Плюс, у меня не было крутого ВУЗа в качестве фундамента. Поэтому я там, где я есть. Я просто сеньор, пишущий под винду.
Araya, Вообще, я предельно точно задал вопрос: что читать, и где искать ментора. Но это интернет, тут могут посоветовать всё что угодно, кроме того что надо.
Araya, Во-первых, я интроверт. Мне проще спросить в интернетах, чем на работе.
Во-вторых, компании бывают разные. У нас, например, есть 100500 разных продуктов, и 100500 команд, которые их разрабатывают. Конкретно в нашей команде... 4 человека. И нет, там нет никакого архитектора. А есть ли он в соседних командах я не знаю.
Возможно. Но уже на момент лексического анализа составляется таблица символов. И в синтаксический анализатор попадает, собственно, не "поле икс", а "некий идентификатор с номером 123 из таблицы символов". В какой момент идентификатор признаётся полем я не знаю. Скорее всего в тот момент, когда синтаксический анализатор накладывает структуру класса на входной поток токенов. Условно, синтаксический анализатор видит слова "class", ID, "{", ID (тип данных), ID... И где-то в этот момент понимает, что ID это какая-то переменная того типа, что стоит слева. Наверное где-то в этот же момент синтаксический анализатор может сообразить, что всё ещё идёт процесс разбора класса, и признать переменную полем.
Но я не настоящий сварщик, просто книжку пару раз прочитал ;))