Как соответствовать объявлению функции? - PullRequest
0 голосов
/ 22 апреля 2020

Чтобы соответствовать привязке переменной, вы используете это:

    /* Rules for keywords */
val             { return VAL; }

Таким образом, вы ставите слово val в правилах для ключевых слов, как насчет:

fun f x = 5 + x;

Как вы подходите? функция f?

1 Ответ

0 голосов
/ 22 апреля 2020

При объявлении переменной val x = 42 указанное вами правило будет соответствовать ключевому слову val и распознавать его как маркер типа VAL. Остальная часть декларации будет соответствовать другим правилам. Например, x будет соответствовать правилу для идентификаторов.

Таким образом, чтобы сопоставить ключевое слово fun в fun f x = 5 + x, вы должны аналогичным образом определить правило fun { return FUN; } (и добавить FUN к вашему списку токенов, если его там еще нет). f и x будут соответствовать одному и тому же правилу идентификатора, который соответствует x в val x = 42.

...