我试图从我的 C 代码和此处仅提取标识符、算术运算符和关系运算符
I am trying to extract only the identifiers, arithemetic and relational operators from my C code and here
我试图从我的 C 代码中仅提取标识符、算术和关系运算符,这是我的 lex 代码:
%{
#include "y.tab.h"
#include "Expression.h"
%}
%%
"==" {return EQ;}
"<" {return '<';}
">" {return '>';}
"=" {return '=';}
"+" {return '+';}
"-" {return '-';}
"*" {return '*';}
"/" {return '/';}
"," {return ',';}
";" {return ';';}
"(" {return '(';}
")" {return ')';}
"{" {return '{';}
"}" {return '}';}
"[" {return '[';}
"]" {return ']';}
"int" {return INT;}
"char" {return CHAR;}
"float" {return FLOAT;}
"long" {return LONG;}
"double" {return DOUBLE;}
"return" {return RETURN;}
"if" {return IF;}
"else" {return ELSE;}
[0-9]+ {return Number;}
[A-Za-z][A-Za-z0-9]* {return Identifier;} }
[ \t] ;
[\n] ;
"." {return BADTOKEN;}
%%
但我一直遇到错误,tinyc.l:45: EOF encountered inside an action。无论如何要对此进行排序?
[A-Za-z][A-Za-z0-9]* {return Identifier;} }
这一行至少看起来很可疑。看起来像额外的结束括号 }
?
我试图从我的 C 代码中仅提取标识符、算术和关系运算符,这是我的 lex 代码:
%{
#include "y.tab.h"
#include "Expression.h"
%}
%%
"==" {return EQ;}
"<" {return '<';}
">" {return '>';}
"=" {return '=';}
"+" {return '+';}
"-" {return '-';}
"*" {return '*';}
"/" {return '/';}
"," {return ',';}
";" {return ';';}
"(" {return '(';}
")" {return ')';}
"{" {return '{';}
"}" {return '}';}
"[" {return '[';}
"]" {return ']';}
"int" {return INT;}
"char" {return CHAR;}
"float" {return FLOAT;}
"long" {return LONG;}
"double" {return DOUBLE;}
"return" {return RETURN;}
"if" {return IF;}
"else" {return ELSE;}
[0-9]+ {return Number;}
[A-Za-z][A-Za-z0-9]* {return Identifier;} }
[ \t] ;
[\n] ;
"." {return BADTOKEN;}
%%
但我一直遇到错误,tinyc.l:45: EOF encountered inside an action。无论如何要对此进行排序?
[A-Za-z][A-Za-z0-9]* {return Identifier;} }
这一行至少看起来很可疑。看起来像额外的结束括号 }
?