我试图从我的C代码和这里只提取标识符,arithemetic和关系运算符(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。 无论如何要对此进行排序?
I am trying to extract only the identifiers, arithmetic and relational operators from my C code and here is my lex code :
%{ #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;} %%But I keep encountering the error, tinyc.l:45: EOF encountered inside an action. Anyway to sort this?
最满意答案
[A-Za-z][A-Za-z0-9]* {return Identifier;} }这条线看起来至少是可疑的。 看起来像额外的结尾括号} ?
[A-Za-z][A-Za-z0-9]* {return Identifier;} }this line looks at least suspicious. Looks like additional ending bracket }?
更多推荐
发布评论