我最近开始学习lex,所以我练习并决定制作一个识别正常变量声明的程序.(有点)
这是我的代码:
%{ #include "stdio.h" %} dataType "int"|"float"|"char"|"String" alphaNumeric [_\*a-zA-Z][0-9]* space [ ] variable {dataType}{space}{alphaNumeric}+ %option noyywrap %% {variable} printf("ok"); . printf("incorect"); %% int main(){ yylex(); }
有些情况下输出应该返回 ok
int var3 int _varR3 int _AA3_
如果我键入输入:int float
,则返回ok
,这是错误的,因为它们都是保留字.
所以我的问题是我应该修改什么来使我的表达式忽略空格后的'dataType'字样?
谢谢.