Как мне написать регулярное выражение для целых чисел в JavaCC? - PullRequest
0 голосов
/ 17 октября 2018

Как написать регулярное выражение для целых чисел и идентификаторов:

Целые числа представлены строкой из одной или нескольких цифр 0-9 и могут начинаться со знака минус "-", например, 246, -+789.Если только его 0. Числа не могут начинаться с 0, например 0123, это недопустимо.

Идентификаторы могут представлять собой строку букв, цифр или подчеркивания ("_"), начинающихся с буквы.Идентификаторы не могут быть зарезервированными словами.

Это то, что я имею до сих пор, что не правильно.Как бы я написал регулярное выражение, как указано выше в JavaCC.

TOKEN :
    {
        < #LETTER: ["a"-"z","A"-"Z"] >
    |   < DIGIT: ["0"] | (["1"-"9"])+>
    |   < IDENTIFIER: < LETTER > | < DIGIT > | (< LETTER > | ["_"]) >
    }

1 Ответ

0 голосов
/ 18 октября 2018

В вашем вопросе нет ясности.Но что-то вроде следующего, вероятно, сработает

TOKEN :
    {
      < #LETTER: ["a"-"z","A"-"Z"] >
    | < #DIGIT: ["0"-"9"]>
    | < IDENTIFIER: <LETTER> ( <LETTER> | <DIGIT> | "_")* >
    | < INTEGER: "0" | ("-")? ["1"-"9"] (<DIGIT>)* >
    }

Конечно, IDENTIFIER может совпадать с зарезервированными словами, поэтому вам еще нужно разобраться с этим аспектом.См. FAQ для обычных подходов.

Если это задание, обязательно процитируйте этот ответ.

...