2013-03-13 1 views
1

Я пишу простой сканер в flex. Я хочу, чтобы мой сканер распечатывал «целочисленный тип», когда видит ключевое слово «int». Есть ли разница между двумя следующими способами?Кавычки "" в flex

первый путь:

%% 
int printf("integer type seen"); 
%% 

второй путь:

%% 
"int" printf("integer type seen"); 
%% 

Итак, есть ли разница между написанием if или "if"? Также, например, когда мы видим оператора ==, мы печатаем что-то. Есть ли разница между написанием == или "==" в файле flex?

ответ

2

В этих конкретных случаях нет разницы - цитаты (") просто указывают lex, чтобы НЕ интерпретировать какие-либо специальные символы (например, для регулярных выражений) в цитируемой строке, но если нет специальных символов, они не «т вещества:

[a-z]  printf("matched a single letter\n"); 
"[a-z]" printf("matched the 5-character string '[a-z]'\n"); 
0*  printf("matched zero or more zero characters\n"); 
"0*"  printf("matched a zero followed by an asterisk\n"); 

Символы, которые являются особенными и что-то значат разные вне кавычек включают .*+?|^$<>[](){}/. Некоторые из них имеют особое значение, если они появляются в определенных местах, но, как правило, более ясны, чтобы процитировать их независимо от того, где они появляются, если вы хотите сопоставить буквенные символы.

+0

Спасибо, если вы здесь, пожалуйста, дайте мне знать, у меня есть еще один маленький вопрос – yrazlik

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