Есть ли быстрый способ определения приоритета и ассоциативности операторов? - PullRequest
3 голосов
/ 11 февраля 2011

Я знаю о perlop.То, что я ищу, это быстрый поиск, например, команда GHCi :info:

ghci> :info (+)
class (Eq a, Show a) => Num a where
    (+) :: a -> a -> a
    ...
    -- Defined in GHC.Num
infixl 6 +

, где я узнаю, что (+) является левоассоциативным и имеет уровень приоритета 6 из строки infixl 6 +.

Ответы [ 2 ]

6 голосов
/ 11 февраля 2011

Я понимаю, что это не совсем то, что вы просите, а как насчет:

perl -MO=Deparse,-p -e "print $a+$b*$c**$d;"

выводит скобки вокруг выражений в соответствии с приоритетом:

print(($a + ($b * ($c ** $d))));

А что касается вещей, не относящихся к Perl, вы можете посмотреть на perlopquick - модуль расположен очень похоже, как вы указали в своем вопросе.

1 голос
/ 11 февраля 2011

Любое разумное справочное руководство и электронная версия или справочная система для языка должны включать приоритет оператора в списке, горизонтальном или вертикальном, начиная с первой записи как наивысшего значения.

...