Это спецификация для лексического анализатора, который берет последовательность символов и превращает их в лексические элементы (или токены).
Написание лексического анализатора не является задачей для слабонервных и,если вы задаете этот вопрос, вы можете обратиться к lex или flex, чтобы помочь вам :-) Если вам нужно сделать это самостоятельно в C, вам следует исследовать конечные автоматы - это позволит вам преобразовать текстовые элементы влексические токены.
Скорее всего, это говорит о том, что идентификатор состоит из буквы, за которой следует (возможно, необязательная) буква, цифра или символ _
, или символов _main
(или токена *).1007 *, это не понятно без дополнительной информации.
Другим примером может быть что-то вроде:
digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
integer ::= digit+
float ::= integer '.' integer
, который определяет:
- a
digit
как один из числовых символов. - и
integer
как последовательность из одной или нескольких цифр. - a
float
как два целых числа, разделенных .
символ.