2015-08-09 4 views
-1

В настоящее время я пытаюсь перекодировать оболочку в C с помощью анализатора BNF и LL. В противном случае мне нужно знать, что является приоритетом оператора оболочки '|' , "< <", ",", "<", ">>", ">", "&", ";" ?Приоритет оператора оболочки

Есть ли кто-нибудь, кто может мне это предоставить? Спасибо

+0

Это не связано с C – Olaf

+0

Да, но что такое язык, который вы используете, когда хотите закодировать оболочку Вам нужно знать приоритет оператора оболочки –

+0

Это не противоречит тому, что я написал. Вопрос касается оболочки, а не языка реализации. И поскольку вы даже не упоминаете оболочку ... Что вы сделали сами, чтобы найти ответ? Но да, конечно, проще спросить, а не просто искать в поисковых системах или искать справочную страницу. – Olaf

ответ

0
  1. Перенаправление (<, >, >>, <>, <&. >& и >>-, а также здесь докторанты <<delimiter и здесь-струны <<<word) примерно так же, как аргументы командной строки, а может появляются в любой точке простой команды, в том числе перед командным словом. Фактически, они связываются наиболее сильно, как с операторами postfix на большинстве языков.
  2. Трубы (|) являются самым сильным двоичным оператором. Они ассоциируются с левой.
  3. Наконец, выходят короткозамкнутые булевы (&& и ||). В отличие от многих языков, они имеют одинаковый приоритет. Они также связывают слева.

, не является оператором bash. ; и & являются терминаторами операторов, а не разделителями, хотя в некоторых случаях окончательный разделитель является необязательным. Фактически, у них самый низкий приоритет.

Подробнее см. На shell grammar. Есть много деталей.

 Смежные вопросы

  • Нет связанных вопросов^_^