Для лексического анализатора sin всегда будет просто идентификатором, но он не должен знать, что этот идентификатор обозначает.
Для синтаксического анализатора, если мы говорим о корректно составленной грамматике без неоднозначностей, будет понятно что после var идет имя новой переменной, а не выражение (частным случаем которого является вызов метода).
Для семантического анализатора все уже сложнее. Если до него доходит выражение вида a = sin,
то тут может быть несколько толкований:
1. Есть переменная sin, имеется в виду она
2. Есть поле класса sin, имеется в виду оно (короткая запись this.sin)
3. Имеется в виду функция, которая сохраняется в переменную
Тут все зависит только от вашей фантазии и желаемой семантики - можно решать приоритетами, можно кидать ошибку, можно запрещать такие конфликты конвенциями