代码拉取完成,页面将自动刷新
%{
#include <iostream>
#include <string>
#include "nn.h"
#include "parser.hpp"
#define SAVE_TOKEN yylval.string = new std::string(yytext, yyleng)
#define TOKEN(t) (yylval.token = t)
int yyparse();
using namespace std;
%}
%option noyywrap
%option noinput
%option yylineno
%option unicode
%%
(\"[^"\n]*\"|\'[^"\n]*\') { cout <<"line"<<yylineno<<" type:STRING,value:"<<yytext<<"\n"; SAVE_TOKEN; return STRING; }
(([-+]?\d+\.\d{0,})|(\d+\.?\d{0,}[eE][+-]?\d+)) {
cout << "line"<<yylineno<<" type:FLOAT,value:"<<yytext<<"\n";
SAVE_TOKEN;
return FLOAT;
}
[-+]?[0-9]+ { cout<<"line"<<yylineno<<" type:INT,value:"<<yytext<<"\n"; SAVE_TOKEN; return INT;}
[\p{L}_][\p{L}\p{N}_]* {cout << "line"<<yylineno<<" type:NAME,value:"<<yytext<<"\n";SAVE_TOKEN;return NAME;}
= { cout << "line"<<yylineno<<" type:TOKEN,value:"<<TEQUAL<<"\n";return TOKEN(TEQUAL); }
\n { return TOKEN(NEWLINE);}
";" {return TOKEN(SEMICOLON);}
"," {return TOKEN(COMMA);}
"(" {return TOKEN(LPAREN);}
")" {return TOKEN(RPAREN);}
. { /* 忽略其他字符 cout<<"line"<<yylineno<<" type:ERRORTOKEN,value:"<<yytext<<"\n"; */}
%%
int yywrap() {
return 1;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。