1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/josinli-Exjson

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
exjson.l 1.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
liqiongfan Отправлено 28.08.2019 16:42 cfa9a26
%{
#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"); }
%%

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/josinli-Exjson.git
git@api.gitlife.ru:oschina-mirror/josinli-Exjson.git
oschina-mirror
josinli-Exjson
josinli-Exjson
master