создание сканера. Идентификация токенов

Мне нужно выполнить токенизацию как часть создания сканера.

Я хочу сканировать целые числа и действительные числа как два разных вида токенов. Например, если у меня есть токен 1.0 .

Как я могу классифицировать его как целое или действительное число.


person Force.comBat    schedule 18.09.2013    source источник
comment
Чтобы повысить вероятность того, что этот вопрос увидят пользователи, способные ответить, и чтобы пользователи знали, о чем вы говорите, измените вопрос и добавьте соответствующий языковой тег. Кроме того, чтобы соответствовать рекомендациям Stack Overflow, вы должны показать, как вы пытались решить эту проблему самостоятельно.   -  person Bernhard Barker    schedule 18.09.2013


Ответы (1)


Используйте регулярное выражение для распознавания как чисел с плавающей запятой, так и целых чисел (см. http://www.regular-expressions.info/floatingpoint.html), а затем классифицируйте их как целые числа, если они не содержат десятичную точку или показатель степени.

person Sneftel    schedule 18.09.2013
comment
На языке c символ может рассматриваться как целочисленный токен? - person Force.comBat; 18.09.2013
comment
Здесь 1.0 — целое число, и оно имеет десятичную точку. Как я могу токенизировать его как целое число? - person Force.comBat; 18.09.2013
comment
Я полагаю, вы могли бы явно распознать дробную часть, состоящую только из нулей, но все известные мне языки (конечно, C) будут рассматривать 1.0 как число с плавающей запятой, а не целое число. - person Sneftel; 18.09.2013