24 Star 124 Fork 36

Josin / Exjson

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
exjson.l 1.47 KB
一键复制 编辑 Web IDE 原始数据 按行查看 历史
liqiongfan 提交于 2019-08-28 21:42 . Fix comment coredump bug
%{
#include <stdio.h>
#include <string.h>
#include "exjson.tab.h"
extern void yyerror(char *);
%}
%option noyywrap case-insensitive
%x COMMENT
%%
"{" { return yytext[0]; }
"}" { return yytext[0]; }
"[" { return yytext[0]; }
"]" { return yytext[0]; }
":" { return yytext[0]; }
"," { return yytext[0]; }
"#" { BEGIN COMMENT; }
"//" { BEGIN COMMENT; }
"true" { yylval.val.val_type = 2; yylval.val.ival = 1; return T_INT; }
"false" { yylval.val.val_type = 2; yylval.val.ival = 0; return T_INT; }
"null" { yylval.val.val_type = 2; yylval.val.ival = 0; return T_INT; }
<COMMENT>. { }
<COMMENT>\n { BEGIN INITIAL; }
(-)?([1-9][0-9]*|[0-9]) { yylval.val.val_type = 2; yylval.val.ival = atol(yytext); return T_INT; }
(-)?([1-9][0-9]*|[0-9])?\.([0-9]*)? { yylval.val.val_type = 3; yylval.val.dval = atof(yytext); return T_DOUBLE; }
\"[^\"]*\" { yylval.val.val_type = 4; yylval.val.ptr = strndup(yytext + 1, strlen(yytext+1) - 1); return T_STR; }
(\n|\t|[ ])+ { }
. { yyerror("Unkown token"); }
%%
C
1
https://gitee.com/josinli/Exjson.git
git@gitee.com:josinli/Exjson.git
josinli
Exjson
Exjson
master

搜索帮助

14c37bed 8189591 565d56ea 8189591