выражение: -arrOfFuncs[0](1, 2), чтобы в асте мы сначала вызывали функцию из arrOfFuncs[0], и только потом уже к результату применяли унарный минус?
потому что у меня пока что унарные операторы парсятся в factor (при условии, что мы опускаемся stmt->expr->term->factor), а вызовы функций - в stmt. То есть,
factor -> id | int | string | "(" expr ")"
unOp -> ("-" | "+") factor
fcall -> expr "(" fcallArgs ")"
я честно говоря сейчас точно не в состоянии ответить на этот вопрос наночь глядя, но unary оператор у тебя должен иметь более высокий presedence
то есть, его нужно обрабатывать не в factor, а выше?
Обсуждают сегодня