Порядок операций в расширенной форме Бэкуса–Наура

Я создаю формальную спецификацию для очень простого языка правил, очень простого. Я хочу использовать EBNF, так как это стандарт, но я не могу понять, как указать порядок операций. Вот спецификация на данный момент.

rule = statement, { (‘AND’|’OR’), statement};

variable = ‘$’,alphabetic character, {alphabetic character | digit};

statement = variable, [ ‘count’,[white space ],’>’,[white space],number ];

alphabetic character = "A" | "B" | "C" | "D" | "E" | "F" | "G"
                     | "H" | "I" | "J" | "K" | "L" | "M" | "N"
                     | "O" | "P" | "Q" | "R" | "S" | "T" | "U"
                     | "V" | "W" | "X" | "Y" | "Z" ;

number = [ "-" ] , digit , { digit } ;

digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;

white space = ? white space characters ? ; 

Вопрос, который у меня есть, заключается в том, как показать, что вещи в скобках должны оцениваться в первую очередь. Что-то вроде этого

$strap AND ($greenSticker count > 5 OR ($greenSticker AND $redSticker))

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

5
задан Dan Walmsley 29 March 2012 в 22:34
поделиться