1 Star 0 Fork 37

ookk / Exjson

forked from Josin / Exjson 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
exjson.l 1.48 KB
一键复制 编辑 原始数据 按行查看 历史
Josin 提交于 2019-05-10 08:47 . 修复数字不支持负数的bug
%{
#include <stdio.h>
#include <string.h>
#include "exjson.tab.h"
extern void yyerror(char *);
%}
%option noyywrap case-insensitive
%s 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]* { 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/gay_hub/Exjson.git
git@gitee.com:gay_hub/Exjson.git
gay_hub
Exjson
Exjson
master

搜索帮助