1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803 |
- /* Generated by re2c 4.1 on Fri Aug 22 11:34:56 2025 */
- #line 1 "lexer_ttl.re"
- #include "volksdata/codec/parser_ttl.h"
- #include "volksdata/codec/tokens_ttl.h"
- //#include "volksdata/codec/parser_common.h"
- /** BEGIN duplicate section
- * This section is bit-by-bit identical in NT and TTL lexers. The copy in
- * include/volksdata/codec/parser_common.h should be used, but some re2c tags
- * are not being parsed in that location.
- */
- /** @brief TTL is UTF-8 encoded.
- *
- * @sa https://www.w3.org/TeamSubmission/turtle/#sec-grammar
- *
- * `char` should be considered to be UTF-8 throughout this library, however,
- * setting YYCTYPE to char generates case labels outside of the char range.
- */
- #define YYCTYPE uint8_t
- #define YYCURSOR it->cur
- #define YYMARKER it->mar
- #define YYLIMIT it->lim
- #define YYFILL fill(it) == 0
- typedef struct {
- FILE * fh; ///< Input file handle.
- const char * sh; ///< Input string. Exclusive with fh.
- size_t buf_size; ///< Initial allocation for buffer.
- YYCTYPE * buf, ///< Start of buffer.
- * lim, ///< Position after the last available
- ///< input character (YYLIMIT).
- * cur, ///< Next input character to be read (YYCURSOR)
- * mar, ///< Most recent match (YYMARKER)
- * tok, ///< Start of current token.
- * bol; ///< Address of the beginning of the
- ///< current line (for debugging).
- unsigned line; ///< Current line no. (for debugging).
- unsigned ct; ///< Number of statements parsed.
- bool eof; ///< if we have reached EOF.
-
- #line 44 "parser_ttl.c"
- YYCTYPE *yyt1;
- #line 40 "lexer_ttl.re"
- } ParseIterator;
- static int fill(ParseIterator *it)
- {
- if (it->eof) {
- return 1;
- }
- size_t shift = it->tok - it->buf;
- // If buffer is too small for the lexeme, double the capacity.
- while (shift < 1) {
- it->buf_size = 2 * it->buf_size;
- it->buf = realloc (it->buf, it->buf_size);
- if (!it->buf) {
- log_error ("Memory allocation error.");
- return -1;
- }
- shift = it->tok - it->buf;
- }
- LOG_DEBUG("Shifting bytes: %lu", shift);
- memmove (it->buf, it->tok, it->lim - it->tok);
- it->lim -= shift;
- it->cur -= shift;
- it->mar -= shift;
- it->tok -= shift;
- it->lim += fread (it->lim, 1, shift, it->fh);
-
- #line 76 "parser_ttl.c"
- if (it->yyt1) it->yyt1 -= shift;
- #line 68 "lexer_ttl.re"
- it->lim[0] = 0;
- it->eof |= it->lim < it->buf + CHUNK_SIZE - 1;
- return 0;
- }
- /** @brief Initialize parser.
- *
- * @param[in] it iterator handle to be initialized.
- *
- * @param[in] fh Open file handle to read from. This is exclusive with sh. If
- * both fh and sh are provided, fh has precedence.
- *
- * @param[in] sh String to read from. This is exclusive with fh.
- */
- static void parse_init (ParseIterator *it, FILE *fh, const char *sh)
- {
- if(fh) {
- // Stream handling. It engages YYFILL and reads by chunks.
- #line 90 "lexer_ttl.re"
- it->fh = fh;
- it->sh = NULL;
- it->buf_size = CHUNK_SIZE;
- it->buf = malloc(it->buf_size);
- if (!it->buf) log_error ("Error allocating lexer buffer.");
- it->cur = it->mar = it->tok = it->lim = it->buf + it->buf_size - 1;
- it->bol = it->buf;
- it->eof = 0;
- } else {
- // String handling. Uses the provided string as the buffer.
- #line 103 "lexer_ttl.re"
- it->fh = NULL;
- it->sh = sh;
- it->buf_size = strlen(sh) + 1;
- it->buf = NULL;
- it->cur = it->tok = (YYCTYPE*)it->sh;
- it->lim = it->mar = it->cur + it->buf_size - 1;
- it->bol = it->cur;
- it->eof = 1;
- }
- it->line = 1;
- it->ct = 0;
-
- #line 125 "parser_ttl.c"
- it->yyt1 = NULL;
- #line 115 "lexer_ttl.re"
- if (it->fh) fill (it);
- }
- /** END duplicate section */
- typedef struct {
- YYCTYPE * data;
- size_t size;
- } ParserToken;
- // Parser interface. Required here to silence linters.
- void *TTLParseAlloc();
- void TTLParse();
- void TTLParseFree();
- #ifdef DEBUG
- void TTLParseTrace();
- #endif
- static inline void newline (ParseIterator *it) {
- it->line ++;
- it->bol = YYCURSOR;
- LOG_TRACE("New line: #%u.", it->line);
- }
- // Lexer.
- static int lex (ParseIterator *it, YYCTYPE **token_p)
- {
- const YYCTYPE *pfx;
- #line 189 "lexer_ttl.re"
- loop: // Start new token.
- it->tok = it->cur;
- *token_p = NULL;
-
- #line 172 "parser_ttl.c"
- {
- YYCTYPE yych;
- unsigned int yyaccept = 0;
- yych = *YYCURSOR;
- switch (yych) {
- case '\t':
- case ' ': goto yy3;
- case '\n':
- case '\r': goto yy5;
- case '"': goto yy7;
- case '#': goto yy9;
- case '(': goto yy11;
- case ')': goto yy12;
- case '+':
- case '-': goto yy13;
- case ',': goto yy14;
- case '.': goto yy16;
- case '0' ... '9': goto yy18;
- case ':': goto yy20;
- case ';': goto yy22;
- case '<': goto yy24;
- case '@': goto yy25;
- case 'A' ... 'Z':
- case 'b' ... 'e':
- case 'g' ... 's':
- case 'u' ... 'z': goto yy26;
- case '[': goto yy27;
- case ']': goto yy29;
- case '^': goto yy30;
- case '_': goto yy31;
- case 'a': goto yy32;
- case 'f': goto yy34;
- case 't': goto yy35;
- case 0xC3: goto yy36;
- case 0xC4 ... 0xCB:
- case 0xCE ... 0xDF: goto yy37;
- case 0xCD: goto yy38;
- case 0xE0: goto yy39;
- case 0xE1:
- case 0xE4 ... 0xEC: goto yy40;
- case 0xE2: goto yy41;
- case 0xE3: goto yy42;
- case 0xED: goto yy43;
- case 0xEF: goto yy44;
- case 0xF0: goto yy45;
- case 0xF1 ... 0xF2: goto yy46;
- case 0xF3: goto yy47;
- default:
- if (YYLIMIT <= YYCURSOR) goto yy256;
- goto yy1;
- }
- yy1:
- ++YYCURSOR;
- yy2:
- #line 198 "lexer_ttl.re"
- {
- log_warn (
- "Invalid token @ %lu: %s (\\x%x)",
- YYCURSOR - it->buf - 1, it->tok, *it->tok);
- return -1;
- }
- #line 235 "parser_ttl.c"
- yy3:
- yych = *++YYCURSOR;
- switch (yych) {
- case '\t' ... '\n':
- case '\r':
- case ' ': goto yy3;
- case '#': goto yy48;
- case ',': goto yy14;
- case '.': goto yy49;
- case ';': goto yy22;
- default: goto yy4;
- }
- yy4:
- #line 266 "lexer_ttl.re"
- {
- uint8_t *ws = uint8_ndup (it->tok, YYCURSOR - it->tok);
- LOG_TRACE("Whitespace: '%s'", ws);
- // Count newlines in mixed whitespace.
- // That's not great because it scans through the whole whitespace again
- // but it's the simplest and safest.
- for (size_t i = 0; i < strlen ((char *)ws); i++)
- if (ws[i] == '\n' || ws[i] == '\r') newline (it);
- free (ws);
- return T_WS;
- }
- #line 262 "parser_ttl.c"
- yy5:
- yych = *++YYCURSOR;
- switch (yych) {
- case '\t' ... '\n':
- case '\r':
- case ' ': goto yy3;
- case '#': goto yy48;
- case ',': goto yy14;
- case '.': goto yy49;
- case ';': goto yy22;
- default: goto yy6;
- }
- yy6:
- #line 211 "lexer_ttl.re"
- {
- newline (it);
- goto loop;
- }
- #line 281 "parser_ttl.c"
- yy7:
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '"': goto yy50;
- default: goto yy8;
- }
- yy8:
- #line 218 "lexer_ttl.re"
- { goto schar; }
- #line 292 "parser_ttl.c"
- yy9:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00:
- case 0x01 ... '\t':
- case '\v' ... '\f':
- case 0x0E ... 0x7F:
- if (YYLIMIT <= YYCURSOR) goto yy10;
- goto yy9;
- case '\n':
- case '\r': goto yy3;
- case 0xC2 ... 0xDF: goto yy52;
- case 0xE0: goto yy53;
- case 0xE1 ... 0xEF: goto yy54;
- case 0xF0: goto yy55;
- case 0xF1 ... 0xF3: goto yy56;
- case 0xF4: goto yy57;
- default: goto yy10;
- }
- yy10:
- #line 261 "lexer_ttl.re"
- {
- LOG_TRACE("Comment: `%s`", it->tok);
- goto loop;
- }
- #line 319 "parser_ttl.c"
- yy11:
- ++YYCURSOR;
- #line 321 "lexer_ttl.re"
- { return T_LPAREN; }
- #line 324 "parser_ttl.c"
- yy12:
- ++YYCURSOR;
- #line 323 "lexer_ttl.re"
- { return T_RPAREN; }
- #line 329 "parser_ttl.c"
- yy13:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '.': goto yy58;
- case '0' ... '9': goto yy18;
- default: goto yy2;
- }
- yy14:
- yych = *++YYCURSOR;
- switch (yych) {
- case '\t' ... '\n':
- case '\r':
- case ' ': goto yy14;
- case '#': goto yy59;
- default: goto yy15;
- }
- yy15:
- #line 339 "lexer_ttl.re"
- { return T_COMMA; }
- #line 350 "parser_ttl.c"
- yy16:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9': goto yy60;
- default: goto yy17;
- }
- yy17:
- #line 341 "lexer_ttl.re"
- {
- LOG_TRACE("End of statement #%u.", it->ct);
- it->ct++;
- return T_PERIOD;
- }
- #line 364 "parser_ttl.c"
- yy18:
- yyaccept = 3;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '.': goto yy60;
- case '0' ... '9': goto yy18;
- case 'E':
- case 'e': goto yy62;
- default: goto yy19;
- }
- yy19:
- #line 286 "lexer_ttl.re"
- {
- // Normalize sign.
- size_t offset = *it->tok == '+' ? 1 : 0;
- *token_p = uint8_ndup (it->tok + offset, YYCURSOR - it->tok - offset);
- LOG_TRACE("Integer: %s", *token_p);
- return T_INTEGER;
- }
- #line 386 "parser_ttl.c"
- yy20:
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00:
- case '-':
- case '0' ... '9':
- case 0xC2:
- case 0xCC: goto yy21;
- case 0xCD: goto yy67;
- case 0xE2: goto yy70;
- default: goto yy64;
- }
- yy21:
- #line 247 "lexer_ttl.re"
- {
- *token_p = uint8_ndup (it->tok, YYCURSOR - it->tok);
- LOG_TRACE("ID name: %s", *token_p);
- return T_QNAME;
- }
- #line 408 "parser_ttl.c"
- yy22:
- yych = *++YYCURSOR;
- switch (yych) {
- case '\t' ... '\n':
- case '\r':
- case ' ': goto yy22;
- case '#': goto yy77;
- default: goto yy23;
- }
- yy23:
- #line 333 "lexer_ttl.re"
- {
- LOG_TRACE("End of object list.");
- return T_SEMICOLON;
- }
- #line 425 "parser_ttl.c"
- yy24:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case ' ' ... 0x7F:
- case 0xC2 ... 0xF4: goto yy79;
- default: goto yy2;
- }
- yy25:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 'B': goto yy89;
- case 'P': goto yy90;
- case 'a':
- case 'c' ... 'o':
- case 'q' ... 'z': goto yy91;
- case 'b': goto yy94;
- case 'p': goto yy95;
- default: goto yy2;
- }
- yy26:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '-':
- case '0' ... ':':
- case 'A' ... 'Z':
- case '_':
- case 'a' ... 'z':
- case 0xC2 ... 0xED:
- case 0xEF ... 0xF3: goto yy97;
- default: goto yy2;
- }
- yy27:
- yyaccept = 5;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '\t' ... '\n':
- case '\r':
- case ' ': goto yy111;
- case '#': goto yy112;
- case ']': goto yy113;
- default: goto yy28;
- }
- yy28:
- #line 327 "lexer_ttl.re"
- { return T_LBRACKET; }
- #line 474 "parser_ttl.c"
- yy29:
- ++YYCURSOR;
- #line 329 "lexer_ttl.re"
- { return T_RBRACKET; }
- #line 479 "parser_ttl.c"
- yy30:
- yych = *++YYCURSOR;
- switch (yych) {
- case '^': goto yy115;
- default: goto yy2;
- }
- yy31:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case ':': goto yy116;
- default: goto yy2;
- }
- yy32:
- yyaccept = 6;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '-':
- case '0' ... ':':
- case 'A' ... 'Z':
- case '_':
- case 'a' ... 'z':
- case 0xC2 ... 0xED:
- case 0xEF ... 0xF3: goto yy97;
- default: goto yy33;
- }
- yy33:
- #line 349 "lexer_ttl.re"
- {
- LOG_TRACE("RDF type shorthand 'a'.");
- return T_RDF_TYPE;
- }
- #line 512 "parser_ttl.c"
- yy34:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '-':
- case '0' ... ':':
- case 'A' ... 'Z':
- case '_':
- case 'b' ... 'z':
- case 0xC2 ... 0xED:
- case 0xEF ... 0xF3: goto yy97;
- case 'a': goto yy117;
- default: goto yy2;
- }
- yy35:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '-':
- case '0' ... ':':
- case 'A' ... 'Z':
- case '_':
- case 'a' ... 'q':
- case 's' ... 'z':
- case 0xC2 ... 0xED:
- case 0xEF ... 0xF3: goto yy97;
- case 'r': goto yy118;
- default: goto yy2;
- }
- yy36:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0x96:
- case 0x98 ... 0xB6:
- case 0xB8 ... 0xBF: goto yy96;
- default: goto yy2;
- }
- yy37:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0xBF: goto yy96;
- default: goto yy2;
- }
- yy38:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0xB0 ... 0xBD:
- case 0xBF: goto yy96;
- default: goto yy2;
- }
- yy39:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy100;
- default: goto yy2;
- }
- yy40:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0xBF: goto yy100;
- default: goto yy2;
- }
- yy41:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80: goto yy119;
- case 0x81: goto yy120;
- case 0x82 ... 0x85:
- case 0xB0 ... 0xBE: goto yy100;
- case 0x86: goto yy121;
- case 0xBF: goto yy122;
- default: goto yy2;
- }
- yy42:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80: goto yy123;
- case 0x81 ... 0xBF: goto yy100;
- default: goto yy2;
- }
- yy43:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0x9F: goto yy100;
- default: goto yy2;
- }
- yy44:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0xA4 ... 0xB6:
- case 0xB8 ... 0xBE: goto yy100;
- case 0xB7: goto yy124;
- case 0xBF: goto yy125;
- default: goto yy2;
- }
- yy45:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x90 ... 0xBF: goto yy103;
- default: goto yy2;
- }
- yy46:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0xBF: goto yy103;
- default: goto yy2;
- }
- yy47:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0xAF: goto yy103;
- default: goto yy2;
- }
- yy48:
- yyaccept = 7;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00:
- case 0x01 ... '\t':
- case '\v' ... '\f':
- case 0x0E ... 0x7F:
- if (YYLIMIT <= YYCURSOR) goto yy4;
- goto yy48;
- case '\n':
- case '\r': goto yy3;
- case 0xC2 ... 0xDF: goto yy126;
- case 0xE0: goto yy127;
- case 0xE1 ... 0xEF: goto yy128;
- case 0xF0: goto yy129;
- case 0xF1 ... 0xF3: goto yy130;
- case 0xF4: goto yy131;
- default: goto yy4;
- }
- yy49:
- ++YYCURSOR;
- goto yy17;
- yy50:
- yych = *++YYCURSOR;
- switch (yych) {
- case '"': goto yy132;
- default: goto yy51;
- }
- yy51:
- YYCURSOR = YYMARKER;
- switch (yyaccept) {
- case 0: goto yy8;
- case 1: goto yy10;
- case 2: goto yy2;
- case 3: goto yy19;
- case 4: goto yy21;
- case 5: goto yy28;
- case 6: goto yy33;
- case 7: goto yy4;
- case 8: goto yy15;
- case 9: goto yy61;
- case 10: goto yy23;
- case 11: goto yy93;
- case 12: goto yy81;
- case 13: goto yy114;
- case 14: goto yy175;
- case 15: goto yy208;
- case 16: goto yy210;
- default: goto yy223;
- }
- yy52:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy9;
- default: goto yy51;
- }
- yy53:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy52;
- default: goto yy51;
- }
- yy54:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy52;
- default: goto yy51;
- }
- yy55:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x90 ... 0xBF: goto yy54;
- default: goto yy51;
- }
- yy56:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy54;
- default: goto yy51;
- }
- yy57:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F: goto yy54;
- default: goto yy51;
- }
- yy58:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9': goto yy60;
- default: goto yy51;
- }
- yy59:
- yyaccept = 8;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00:
- case 0x01 ... '\t':
- case '\v' ... '\f':
- case 0x0E ... 0x7F:
- if (YYLIMIT <= YYCURSOR) goto yy15;
- goto yy59;
- case '\n':
- case '\r': goto yy14;
- case 0xC2 ... 0xDF: goto yy133;
- case 0xE0: goto yy134;
- case 0xE1 ... 0xEF: goto yy135;
- case 0xF0: goto yy136;
- case 0xF1 ... 0xF3: goto yy137;
- case 0xF4: goto yy138;
- default: goto yy15;
- }
- yy60:
- yyaccept = 9;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '0' ... '9': goto yy60;
- case 'E':
- case 'e': goto yy62;
- default: goto yy61;
- }
- yy61:
- #line 306 "lexer_ttl.re"
- {
- // Normalize sign.
- YYCTYPE offset = *it->tok == '+' ? 1 : 0;
- // Normalize trailing zeros in fractional part.
- size_t size = YYCURSOR - it->tok - offset;
- if (strchr ((char *)it->tok, '.'))
- for (YYCTYPE *i = YYCURSOR; *i == '0'; i--) size--;
- *token_p = uint8_ndup (it->tok + offset, size);
- LOG_TRACE("Integer: %s", *token_p);
- return T_DECIMAL;
- }
- #line 776 "parser_ttl.c"
- yy62:
- yych = *++YYCURSOR;
- switch (yych) {
- case '+':
- case '-': goto yy139;
- case '0' ... '9': goto yy140;
- default: goto yy51;
- }
- yy63:
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- yy64:
- switch (yych) {
- case '-':
- case '0' ... '9':
- case 'A' ... 'Z':
- case '_':
- case 'a' ... 'z': goto yy63;
- case 0xC2: goto yy142;
- case 0xC3: goto yy65;
- case 0xC4 ... 0xCC:
- case 0xCE ... 0xDF: goto yy66;
- case 0xCD: goto yy143;
- case 0xE0: goto yy68;
- case 0xE1:
- case 0xE4 ... 0xEC: goto yy69;
- case 0xE2: goto yy144;
- case 0xE3: goto yy71;
- case 0xED: goto yy72;
- case 0xEF: goto yy73;
- case 0xF0: goto yy74;
- case 0xF1 ... 0xF2: goto yy75;
- case 0xF3: goto yy76;
- default: goto yy21;
- }
- yy65:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x96:
- case 0x98 ... 0xB6:
- case 0xB8 ... 0xBF: goto yy63;
- default: goto yy51;
- }
- yy66:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy63;
- default: goto yy51;
- }
- yy67:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xB0 ... 0xBD:
- case 0xBF: goto yy63;
- default: goto yy51;
- }
- yy68:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy66;
- default: goto yy51;
- }
- yy69:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy66;
- default: goto yy51;
- }
- yy70:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80: goto yy145;
- case 0x81: goto yy146;
- case 0x82 ... 0x85:
- case 0xB0 ... 0xBE: goto yy66;
- case 0x86: goto yy147;
- case 0xBF: goto yy148;
- default: goto yy51;
- }
- yy71:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80: goto yy149;
- case 0x81 ... 0xBF: goto yy66;
- default: goto yy51;
- }
- yy72:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x9F: goto yy66;
- default: goto yy51;
- }
- yy73:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA4 ... 0xB6:
- case 0xB8 ... 0xBE: goto yy66;
- case 0xB7: goto yy150;
- case 0xBF: goto yy151;
- default: goto yy51;
- }
- yy74:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x90 ... 0xBF: goto yy69;
- default: goto yy51;
- }
- yy75:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy69;
- default: goto yy51;
- }
- yy76:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xAF: goto yy69;
- default: goto yy51;
- }
- yy77:
- yyaccept = 10;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00:
- case 0x01 ... '\t':
- case '\v' ... '\f':
- case 0x0E ... 0x7F:
- if (YYLIMIT <= YYCURSOR) goto yy23;
- goto yy77;
- case '\n':
- case '\r': goto yy22;
- case 0xC2 ... 0xDF: goto yy152;
- case 0xE0: goto yy153;
- case 0xE1 ... 0xEF: goto yy154;
- case 0xF0: goto yy155;
- case 0xF1 ... 0xF3: goto yy156;
- case 0xF4: goto yy157;
- default: goto yy23;
- }
- yy78:
- yych = *++YYCURSOR;
- yy79:
- switch (yych) {
- case ' ' ... '=':
- case '?' ... '[':
- case ']' ... 0x7F: goto yy78;
- case '>': goto yy80;
- case '\\': goto yy82;
- case 0xC2 ... 0xDF: goto yy83;
- case 0xE0: goto yy84;
- case 0xE1 ... 0xEF: goto yy85;
- case 0xF0: goto yy86;
- case 0xF1 ... 0xF3: goto yy87;
- case 0xF4: goto yy88;
- default: goto yy51;
- }
- yy80:
- ++YYCURSOR;
- yy81:
- #line 227 "lexer_ttl.re"
- {
- *token_p = uint8_ndup (it->tok + 1, YYCURSOR - it->tok - 2);
- LOG_TRACE("URI data: %s", *token_p);
- return T_IRIREF;
- }
- #line 943 "parser_ttl.c"
- yy82:
- yych = *++YYCURSOR;
- switch (yych) {
- case ' ' ... '=':
- case '?' ... '[':
- case ']' ... 0x7F: goto yy78;
- case '>': goto yy158;
- case '\\': goto yy82;
- case 0xC2 ... 0xDF: goto yy83;
- case 0xE0: goto yy84;
- case 0xE1 ... 0xEF: goto yy85;
- case 0xF0: goto yy86;
- case 0xF1 ... 0xF3: goto yy87;
- case 0xF4: goto yy88;
- default: goto yy51;
- }
- yy83:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy78;
- default: goto yy51;
- }
- yy84:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy83;
- default: goto yy51;
- }
- yy85:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy83;
- default: goto yy51;
- }
- yy86:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x90 ... 0xBF: goto yy85;
- default: goto yy51;
- }
- yy87:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy85;
- default: goto yy51;
- }
- yy88:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F: goto yy85;
- default: goto yy51;
- }
- yy89:
- yych = *++YYCURSOR;
- switch (yych) {
- case 'A':
- case 'a': goto yy159;
- default: goto yy51;
- }
- yy90:
- yych = *++YYCURSOR;
- switch (yych) {
- case 'R':
- case 'r': goto yy160;
- default: goto yy51;
- }
- yy91:
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- yy92:
- switch (yych) {
- case '-': goto yy161;
- case 'a' ... 'z': goto yy91;
- default: goto yy93;
- }
- yy93:
- #line 279 "lexer_ttl.re"
- {
- *token_p = uint8_ndup (it->tok + 1, YYCURSOR - it->tok - 1);
- LOG_TRACE("Lang tag: '%s'", *token_p);
- return T_LANGTAG;
- }
- #line 1027 "parser_ttl.c"
- yy94:
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00: goto yy93;
- case 'A': goto yy159;
- case 'a': goto yy162;
- default: goto yy92;
- }
- yy95:
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00: goto yy93;
- case 'R': goto yy160;
- case 'r': goto yy163;
- default: goto yy92;
- }
- yy96:
- yych = *++YYCURSOR;
- yy97:
- switch (yych) {
- case '-':
- case '0' ... '9':
- case 'A' ... 'Z':
- case '_':
- case 'a' ... 'z': goto yy96;
- case ':': goto yy20;
- case 0xC2: goto yy98;
- case 0xC3: goto yy99;
- case 0xC4 ... 0xCC:
- case 0xCE ... 0xDF: goto yy100;
- case 0xCD: goto yy101;
- case 0xE0: goto yy102;
- case 0xE1:
- case 0xE4 ... 0xEC: goto yy103;
- case 0xE2: goto yy104;
- case 0xE3: goto yy105;
- case 0xED: goto yy106;
- case 0xEF: goto yy107;
- case 0xF0: goto yy108;
- case 0xF1 ... 0xF2: goto yy109;
- case 0xF3: goto yy110;
- default: goto yy51;
- }
- yy98:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xB7: goto yy96;
- default: goto yy51;
- }
- yy99:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x96:
- case 0x98 ... 0xB6:
- case 0xB8 ... 0xBF: goto yy96;
- default: goto yy51;
- }
- yy100:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy96;
- default: goto yy51;
- }
- yy101:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBD:
- case 0xBF: goto yy96;
- default: goto yy51;
- }
- yy102:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy100;
- default: goto yy51;
- }
- yy103:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy100;
- default: goto yy51;
- }
- yy104:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80: goto yy164;
- case 0x81: goto yy165;
- case 0x82 ... 0x85:
- case 0xB0 ... 0xBE: goto yy100;
- case 0x86: goto yy121;
- case 0xBF: goto yy122;
- default: goto yy51;
- }
- yy105:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80: goto yy123;
- case 0x81 ... 0xBF: goto yy100;
- default: goto yy51;
- }
- yy106:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x9F: goto yy100;
- default: goto yy51;
- }
- yy107:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA4 ... 0xB6:
- case 0xB8 ... 0xBE: goto yy100;
- case 0xB7: goto yy124;
- case 0xBF: goto yy125;
- default: goto yy51;
- }
- yy108:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x90 ... 0xBF: goto yy103;
- default: goto yy51;
- }
- yy109:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy103;
- default: goto yy51;
- }
- yy110:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xAF: goto yy103;
- default: goto yy51;
- }
- yy111:
- yych = *++YYCURSOR;
- switch (yych) {
- case '\t' ... '\n':
- case '\r':
- case ' ': goto yy111;
- case '#': goto yy112;
- case ']': goto yy113;
- default: goto yy51;
- }
- yy112:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x00:
- case 0x01 ... '\t':
- case '\v' ... '\f':
- case 0x0E ... '\\':
- case '^' ... 0x7F:
- if (YYLIMIT <= YYCURSOR) goto yy51;
- goto yy112;
- case '\n':
- case '\r': goto yy111;
- case ']': goto yy166;
- case 0xC2 ... 0xDF: goto yy167;
- case 0xE0: goto yy168;
- case 0xE1 ... 0xEF: goto yy169;
- case 0xF0: goto yy170;
- case 0xF1 ... 0xF3: goto yy171;
- case 0xF4: goto yy172;
- default: goto yy51;
- }
- yy113:
- ++YYCURSOR;
- yy114:
- #line 325 "lexer_ttl.re"
- { return T_ANON; }
- #line 1199 "parser_ttl.c"
- yy115:
- ++YYCURSOR;
- #line 347 "lexer_ttl.re"
- { return T_DTYPE_MARKER; }
- #line 1204 "parser_ttl.c"
- yy116:
- yych = *++YYCURSOR;
- switch (yych) {
- case 'A' ... 'Z':
- case '_':
- case 'a' ... 'z':
- case 0xC3 ... 0xCB:
- case 0xCE ... 0xE1:
- case 0xE3 ... 0xED:
- case 0xEF ... 0xF3: goto yy174;
- case 0xCD: goto yy178;
- case 0xE2: goto yy181;
- default: goto yy51;
- }
- yy117:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x00: goto yy51;
- case 'l': goto yy188;
- default: goto yy97;
- }
- yy118:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x00: goto yy51;
- case 'u': goto yy189;
- default: goto yy97;
- }
- yy119:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x8C ... 0x8D: goto yy96;
- default: goto yy51;
- }
- yy120:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xB0 ... 0xBF: goto yy96;
- default: goto yy51;
- }
- yy121:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F: goto yy96;
- default: goto yy51;
- }
- yy122:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xAF: goto yy96;
- default: goto yy51;
- }
- yy123:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x81 ... 0xBF: goto yy96;
- default: goto yy51;
- }
- yy124:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F:
- case 0xB0 ... 0xBF: goto yy96;
- default: goto yy51;
- }
- yy125:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBD: goto yy96;
- default: goto yy51;
- }
- yy126:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy48;
- default: goto yy51;
- }
- yy127:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy126;
- default: goto yy51;
- }
- yy128:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy126;
- default: goto yy51;
- }
- yy129:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x90 ... 0xBF: goto yy128;
- default: goto yy51;
- }
- yy130:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy128;
- default: goto yy51;
- }
- yy131:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F: goto yy128;
- default: goto yy51;
- }
- yy132:
- ++YYCURSOR;
- #line 216 "lexer_ttl.re"
- { goto lchar; }
- #line 1316 "parser_ttl.c"
- yy133:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy59;
- default: goto yy51;
- }
- yy134:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy133;
- default: goto yy51;
- }
- yy135:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy133;
- default: goto yy51;
- }
- yy136:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x90 ... 0xBF: goto yy135;
- default: goto yy51;
- }
- yy137:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy135;
- default: goto yy51;
- }
- yy138:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F: goto yy135;
- default: goto yy51;
- }
- yy139:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9': goto yy140;
- default: goto yy51;
- }
- yy140:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9': goto yy140;
- default: goto yy141;
- }
- yy141:
- #line 296 "lexer_ttl.re"
- {
- // Normalize sign.
- size_t offset = *it->tok == '+' ? 1 : 0;
- *token_p = uint8_ndup (it->tok + offset, YYCURSOR - it->tok - offset);
- LOG_TRACE("Integer: %s", *token_p);
- return T_DOUBLE;
- }
- #line 1376 "parser_ttl.c"
- yy142:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xB7: goto yy63;
- default: goto yy51;
- }
- yy143:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBD:
- case 0xBF: goto yy63;
- default: goto yy51;
- }
- yy144:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80: goto yy190;
- case 0x81: goto yy191;
- case 0x82 ... 0x85:
- case 0xB0 ... 0xBE: goto yy66;
- case 0x86: goto yy147;
- case 0xBF: goto yy148;
- default: goto yy51;
- }
- yy145:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x8C ... 0x8D: goto yy63;
- default: goto yy51;
- }
- yy146:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xB0 ... 0xBF: goto yy63;
- default: goto yy51;
- }
- yy147:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F: goto yy63;
- default: goto yy51;
- }
- yy148:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xAF: goto yy63;
- default: goto yy51;
- }
- yy149:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x81 ... 0xBF: goto yy63;
- default: goto yy51;
- }
- yy150:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F:
- case 0xB0 ... 0xBF: goto yy63;
- default: goto yy51;
- }
- yy151:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBD: goto yy63;
- default: goto yy51;
- }
- yy152:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy77;
- default: goto yy51;
- }
- yy153:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy152;
- default: goto yy51;
- }
- yy154:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy152;
- default: goto yy51;
- }
- yy155:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x90 ... 0xBF: goto yy154;
- default: goto yy51;
- }
- yy156:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy154;
- default: goto yy51;
- }
- yy157:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F: goto yy154;
- default: goto yy51;
- }
- yy158:
- yyaccept = 12;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case ' ' ... '=':
- case '?' ... '[':
- case ']' ... 0x7F: goto yy78;
- case '>': goto yy80;
- case '\\': goto yy82;
- case 0xC2 ... 0xDF: goto yy83;
- case 0xE0: goto yy84;
- case 0xE1 ... 0xEF: goto yy85;
- case 0xF0: goto yy86;
- case 0xF1 ... 0xF3: goto yy87;
- case 0xF4: goto yy88;
- default: goto yy81;
- }
- yy159:
- yych = *++YYCURSOR;
- switch (yych) {
- case 'S':
- case 's': goto yy192;
- default: goto yy51;
- }
- yy160:
- yych = *++YYCURSOR;
- switch (yych) {
- case 'E':
- case 'e': goto yy193;
- default: goto yy51;
- }
- yy161:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'Z':
- case 'a' ... 'z': goto yy194;
- default: goto yy51;
- }
- yy162:
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00: goto yy93;
- case 'S': goto yy192;
- case 's': goto yy195;
- default: goto yy92;
- }
- yy163:
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00: goto yy93;
- case 'E': goto yy193;
- case 'e': goto yy196;
- default: goto yy92;
- }
- yy164:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x8C ... 0x8D:
- case 0xBF: goto yy96;
- default: goto yy51;
- }
- yy165:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80:
- case 0xB0 ... 0xBF: goto yy96;
- default: goto yy51;
- }
- yy166:
- yyaccept = 13;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00:
- case 0x01 ... '\t':
- case '\v' ... '\f':
- case 0x0E ... '\\':
- case '^' ... 0x7F:
- if (YYLIMIT <= YYCURSOR) goto yy114;
- goto yy112;
- case '\n':
- case '\r': goto yy111;
- case ']': goto yy166;
- case 0xC2 ... 0xDF: goto yy167;
- case 0xE0: goto yy168;
- case 0xE1 ... 0xEF: goto yy169;
- case 0xF0: goto yy170;
- case 0xF1 ... 0xF3: goto yy171;
- case 0xF4: goto yy172;
- default: goto yy114;
- }
- yy167:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy112;
- default: goto yy51;
- }
- yy168:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy167;
- default: goto yy51;
- }
- yy169:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy167;
- default: goto yy51;
- }
- yy170:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x90 ... 0xBF: goto yy169;
- default: goto yy51;
- }
- yy171:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy169;
- default: goto yy51;
- }
- yy172:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F: goto yy169;
- default: goto yy51;
- }
- yy173:
- yyaccept = 14;
- yych = *(YYMARKER = ++YYCURSOR);
- yy174:
- switch (yych) {
- case '-':
- case '0' ... '9':
- case 'A' ... 'Z':
- case '_':
- case 'a' ... 'z': goto yy173;
- case 0xC2: goto yy197;
- case 0xC3: goto yy176;
- case 0xC4 ... 0xCC:
- case 0xCE ... 0xDF: goto yy177;
- case 0xCD: goto yy198;
- case 0xE0: goto yy179;
- case 0xE1:
- case 0xE4 ... 0xEC: goto yy180;
- case 0xE2: goto yy199;
- case 0xE3: goto yy182;
- case 0xED: goto yy183;
- case 0xEF: goto yy184;
- case 0xF0: goto yy185;
- case 0xF1 ... 0xF2: goto yy186;
- case 0xF3: goto yy187;
- default: goto yy175;
- }
- yy175:
- #line 254 "lexer_ttl.re"
- {
- *token_p = uint8_ndup (it->tok + 2, YYCURSOR - it->tok - 2);
- LOG_TRACE("BNode name: %s", *token_p);
- return T_BNODE_ID;
- }
- #line 1644 "parser_ttl.c"
- yy176:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x96:
- case 0x98 ... 0xB6:
- case 0xB8 ... 0xBF: goto yy173;
- default: goto yy51;
- }
- yy177:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy173;
- default: goto yy51;
- }
- yy178:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xB0 ... 0xBD:
- case 0xBF: goto yy173;
- default: goto yy51;
- }
- yy179:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy177;
- default: goto yy51;
- }
- yy180:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy177;
- default: goto yy51;
- }
- yy181:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80: goto yy200;
- case 0x81: goto yy201;
- case 0x82 ... 0x85:
- case 0xB0 ... 0xBE: goto yy177;
- case 0x86: goto yy202;
- case 0xBF: goto yy203;
- default: goto yy51;
- }
- yy182:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80: goto yy204;
- case 0x81 ... 0xBF: goto yy177;
- default: goto yy51;
- }
- yy183:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x9F: goto yy177;
- default: goto yy51;
- }
- yy184:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA4 ... 0xB6:
- case 0xB8 ... 0xBE: goto yy177;
- case 0xB7: goto yy205;
- case 0xBF: goto yy206;
- default: goto yy51;
- }
- yy185:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x90 ... 0xBF: goto yy180;
- default: goto yy51;
- }
- yy186:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy180;
- default: goto yy51;
- }
- yy187:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xAF: goto yy180;
- default: goto yy51;
- }
- yy188:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x00: goto yy51;
- case 's': goto yy189;
- default: goto yy97;
- }
- yy189:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x00: goto yy51;
- case 'e': goto yy207;
- default: goto yy97;
- }
- yy190:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x8C ... 0x8D:
- case 0xBF: goto yy63;
- default: goto yy51;
- }
- yy191:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80:
- case 0xB0 ... 0xBF: goto yy63;
- default: goto yy51;
- }
- yy192:
- yych = *++YYCURSOR;
- switch (yych) {
- case 'E':
- case 'e': goto yy209;
- default: goto yy51;
- }
- yy193:
- yych = *++YYCURSOR;
- switch (yych) {
- case 'F':
- case 'f': goto yy211;
- default: goto yy51;
- }
- yy194:
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '-': goto yy161;
- case '0' ... '9':
- case 'A' ... 'Z':
- case 'a' ... 'z': goto yy194;
- default: goto yy93;
- }
- yy195:
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00: goto yy93;
- case 'E': goto yy209;
- case 'e': goto yy212;
- default: goto yy92;
- }
- yy196:
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00: goto yy93;
- case 'F': goto yy211;
- case 'f': goto yy213;
- default: goto yy92;
- }
- yy197:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xB7: goto yy173;
- default: goto yy51;
- }
- yy198:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBD:
- case 0xBF: goto yy173;
- default: goto yy51;
- }
- yy199:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80: goto yy214;
- case 0x81: goto yy215;
- case 0x82 ... 0x85:
- case 0xB0 ... 0xBE: goto yy177;
- case 0x86: goto yy202;
- case 0xBF: goto yy203;
- default: goto yy51;
- }
- yy200:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x8C ... 0x8D: goto yy173;
- default: goto yy51;
- }
- yy201:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xB0 ... 0xBF: goto yy173;
- default: goto yy51;
- }
- yy202:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F: goto yy173;
- default: goto yy51;
- }
- yy203:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xAF: goto yy173;
- default: goto yy51;
- }
- yy204:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x81 ... 0xBF: goto yy173;
- default: goto yy51;
- }
- yy205:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F:
- case 0xB0 ... 0xBF: goto yy173;
- default: goto yy51;
- }
- yy206:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBD: goto yy173;
- default: goto yy51;
- }
- yy207:
- yyaccept = 15;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '-':
- case '0' ... ':':
- case 'A' ... 'Z':
- case '_':
- case 'a' ... 'z':
- case 0xC2 ... 0xED:
- case 0xEF ... 0xF3: goto yy97;
- default: goto yy208;
- }
- yy208:
- #line 220 "lexer_ttl.re"
- {
- *token_p = uint8_ndup (it->tok, YYCURSOR - it->tok);
- LOG_TRACE("Boolean: %s", *token_p);
- return T_BOOLEAN;
- }
- #line 1887 "parser_ttl.c"
- yy209:
- ++YYCURSOR;
- yy210:
- #line 241 "lexer_ttl.re"
- {
- LOG_TRACE("'@base' keyword.");
- return T_BASE;
- }
- #line 1897 "parser_ttl.c"
- yy211:
- yych = *++YYCURSOR;
- switch (yych) {
- case 'I':
- case 'i': goto yy216;
- default: goto yy51;
- }
- yy212:
- yyaccept = 16;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '-': goto yy161;
- case 'a' ... 'z': goto yy91;
- default: goto yy210;
- }
- yy213:
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00: goto yy93;
- case 'I': goto yy216;
- case 'i': goto yy217;
- default: goto yy92;
- }
- yy214:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x8C ... 0x8D:
- case 0xBF: goto yy173;
- default: goto yy51;
- }
- yy215:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80:
- case 0xB0 ... 0xBF: goto yy173;
- default: goto yy51;
- }
- yy216:
- yych = *++YYCURSOR;
- switch (yych) {
- case 'X':
- case 'x': goto yy218;
- default: goto yy51;
- }
- yy217:
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00: goto yy93;
- case 'X': goto yy218;
- case 'x': goto yy219;
- default: goto yy92;
- }
- yy218:
- yych = *++YYCURSOR;
- switch (yych) {
- case '\t' ... '\n':
- case '\r':
- case ' ': goto yy220;
- case '#': goto yy221;
- default: goto yy51;
- }
- yy219:
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00: goto yy93;
- case '\t' ... '\n':
- case '\r':
- case ' ': goto yy220;
- case '#': goto yy221;
- default: goto yy92;
- }
- yy220:
- yych = *++YYCURSOR;
- switch (yych) {
- case '\t' ... '\n':
- case '\r':
- case ' ': goto yy220;
- case '#': goto yy221;
- case ':':
- it->yyt1 = YYCURSOR;
- goto yy222;
- case 'A' ... 'Z':
- case 'a' ... 'z':
- it->yyt1 = YYCURSOR;
- goto yy224;
- case 0xC3:
- it->yyt1 = YYCURSOR;
- goto yy225;
- case 0xC4 ... 0xCB:
- case 0xCE ... 0xDF:
- it->yyt1 = YYCURSOR;
- goto yy226;
- case 0xCD:
- it->yyt1 = YYCURSOR;
- goto yy227;
- case 0xE0:
- it->yyt1 = YYCURSOR;
- goto yy228;
- case 0xE1:
- case 0xE4 ... 0xEC:
- it->yyt1 = YYCURSOR;
- goto yy229;
- case 0xE2:
- it->yyt1 = YYCURSOR;
- goto yy230;
- case 0xE3:
- it->yyt1 = YYCURSOR;
- goto yy231;
- case 0xED:
- it->yyt1 = YYCURSOR;
- goto yy232;
- case 0xEF:
- it->yyt1 = YYCURSOR;
- goto yy233;
- case 0xF0:
- it->yyt1 = YYCURSOR;
- goto yy234;
- case 0xF1 ... 0xF2:
- it->yyt1 = YYCURSOR;
- goto yy235;
- case 0xF3:
- it->yyt1 = YYCURSOR;
- goto yy236;
- default: goto yy51;
- }
- yy221:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x00:
- case 0x01 ... '\t':
- case '\v' ... '\f':
- case 0x0E ... '9':
- case ';' ... 0x7F:
- if (YYLIMIT <= YYCURSOR) goto yy51;
- goto yy221;
- case '\n':
- case '\r': goto yy220;
- case ':':
- it->yyt1 = YYCURSOR;
- goto yy237;
- case 0xC2 ... 0xDF: goto yy238;
- case 0xE0: goto yy239;
- case 0xE1 ... 0xEF: goto yy240;
- case 0xF0: goto yy241;
- case 0xF1 ... 0xF3: goto yy242;
- case 0xF4: goto yy243;
- default: goto yy51;
- }
- yy222:
- ++YYCURSOR;
- yy223:
- pfx = it->yyt1;
- #line 234 "lexer_ttl.re"
- {
- *token_p = uint8_ndup (pfx, YYCURSOR - pfx - 1);
- LOG_TRACE("Prefix declaration: '%s'", *token_p);
- return T_PREFIX;
- }
- #line 2060 "parser_ttl.c"
- yy224:
- yych = *++YYCURSOR;
- switch (yych) {
- case '-':
- case '0' ... '9':
- case 'A' ... 'Z':
- case '_':
- case 'a' ... 'z': goto yy224;
- case ':': goto yy222;
- case 0xC2: goto yy244;
- case 0xC3: goto yy225;
- case 0xC4 ... 0xCC:
- case 0xCE ... 0xDF: goto yy226;
- case 0xCD: goto yy245;
- case 0xE0: goto yy228;
- case 0xE1:
- case 0xE4 ... 0xEC: goto yy229;
- case 0xE2: goto yy246;
- case 0xE3: goto yy231;
- case 0xED: goto yy232;
- case 0xEF: goto yy233;
- case 0xF0: goto yy234;
- case 0xF1 ... 0xF2: goto yy235;
- case 0xF3: goto yy236;
- default: goto yy51;
- }
- yy225:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x96:
- case 0x98 ... 0xB6:
- case 0xB8 ... 0xBF: goto yy224;
- default: goto yy51;
- }
- yy226:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy224;
- default: goto yy51;
- }
- yy227:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xB0 ... 0xBD:
- case 0xBF: goto yy224;
- default: goto yy51;
- }
- yy228:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy226;
- default: goto yy51;
- }
- yy229:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy226;
- default: goto yy51;
- }
- yy230:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80: goto yy247;
- case 0x81: goto yy248;
- case 0x82 ... 0x85:
- case 0xB0 ... 0xBE: goto yy226;
- case 0x86: goto yy249;
- case 0xBF: goto yy250;
- default: goto yy51;
- }
- yy231:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80: goto yy251;
- case 0x81 ... 0xBF: goto yy226;
- default: goto yy51;
- }
- yy232:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x9F: goto yy226;
- default: goto yy51;
- }
- yy233:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA4 ... 0xB6:
- case 0xB8 ... 0xBE: goto yy226;
- case 0xB7: goto yy252;
- case 0xBF: goto yy253;
- default: goto yy51;
- }
- yy234:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x90 ... 0xBF: goto yy229;
- default: goto yy51;
- }
- yy235:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy229;
- default: goto yy51;
- }
- yy236:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xAF: goto yy229;
- default: goto yy51;
- }
- yy237:
- yyaccept = 17;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x00:
- case 0x01 ... '\t':
- case '\v' ... '\f':
- case 0x0E ... '9':
- case ';' ... 0x7F:
- if (YYLIMIT <= YYCURSOR) goto yy223;
- goto yy221;
- case '\n':
- case '\r': goto yy220;
- case ':':
- it->yyt1 = YYCURSOR;
- goto yy237;
- case 0xC2 ... 0xDF: goto yy238;
- case 0xE0: goto yy239;
- case 0xE1 ... 0xEF: goto yy240;
- case 0xF0: goto yy241;
- case 0xF1 ... 0xF3: goto yy242;
- case 0xF4: goto yy243;
- default: goto yy223;
- }
- yy238:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy221;
- default: goto yy51;
- }
- yy239:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy238;
- default: goto yy51;
- }
- yy240:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy238;
- default: goto yy51;
- }
- yy241:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x90 ... 0xBF: goto yy240;
- default: goto yy51;
- }
- yy242:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy240;
- default: goto yy51;
- }
- yy243:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F: goto yy240;
- default: goto yy51;
- }
- yy244:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xB7: goto yy224;
- default: goto yy51;
- }
- yy245:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBD:
- case 0xBF: goto yy224;
- default: goto yy51;
- }
- yy246:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80: goto yy254;
- case 0x81: goto yy255;
- case 0x82 ... 0x85:
- case 0xB0 ... 0xBE: goto yy226;
- case 0x86: goto yy249;
- case 0xBF: goto yy250;
- default: goto yy51;
- }
- yy247:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x8C ... 0x8D: goto yy224;
- default: goto yy51;
- }
- yy248:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0xB0 ... 0xBF: goto yy224;
- default: goto yy51;
- }
- yy249:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F: goto yy224;
- default: goto yy51;
- }
- yy250:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xAF: goto yy224;
- default: goto yy51;
- }
- yy251:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x81 ... 0xBF: goto yy224;
- default: goto yy51;
- }
- yy252:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0x8F:
- case 0xB0 ... 0xBF: goto yy224;
- default: goto yy51;
- }
- yy253:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBD: goto yy224;
- default: goto yy51;
- }
- yy254:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x8C ... 0x8D:
- case 0xBF: goto yy224;
- default: goto yy51;
- }
- yy255:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80:
- case 0xB0 ... 0xBF: goto yy224;
- default: goto yy51;
- }
- yy256:
- #line 206 "lexer_ttl.re"
- {
- LOG_TRACE("End of document.");
- return T_EOF;
- }
- #line 2318 "parser_ttl.c"
- }
- #line 354 "lexer_ttl.re"
- schar:
-
- #line 2325 "parser_ttl.c"
- {
- YYCTYPE yych;
- unsigned int yyaccept = 0;
- yych = *YYCURSOR;
- switch (yych) {
- case ' ' ... '!':
- case '#' ... '[':
- case ']' ... 0x7F: goto yy260;
- case '"': goto yy262;
- case '\\': goto yy263;
- case 0xC2 ... 0xDF: goto yy264;
- case 0xE0: goto yy265;
- case 0xE1 ... 0xEF: goto yy266;
- case 0xF0: goto yy267;
- case 0xF1 ... 0xF3: goto yy268;
- case 0xF4: goto yy269;
- default:
- if (YYLIMIT <= YYCURSOR) goto yy281;
- goto yy258;
- }
- yy258:
- ++YYCURSOR;
- yy259:
- #line 359 "lexer_ttl.re"
- {
- log_warn (
- "Invalid token in string @ %lu: %s (\\x%x)",
- YYCURSOR - it->buf - 1, it->tok, *it->tok);
- return -1;
- }
- #line 2357 "parser_ttl.c"
- yy260:
- ++YYCURSOR;
- yy261:
- #line 373 "lexer_ttl.re"
- { goto schar; }
- #line 2363 "parser_ttl.c"
- yy262:
- ++YYCURSOR;
- #line 375 "lexer_ttl.re"
- {
- *token_p = unescape_unicode (it->tok + 1, YYCURSOR - it->tok - 2);
- LOG_TRACE("String: %s", *token_p);
- return T_STRING;
- }
- #line 2373 "parser_ttl.c"
- yy263:
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '"': goto yy260;
- case 'U': goto yy270;
- case 'u': goto yy272;
- default: goto yy261;
- }
- yy264:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy260;
- default: goto yy259;
- }
- yy265:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy273;
- default: goto yy259;
- }
- yy266:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0xBF: goto yy273;
- default: goto yy259;
- }
- yy267:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x90 ... 0xBF: goto yy274;
- default: goto yy259;
- }
- yy268:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0xBF: goto yy274;
- default: goto yy259;
- }
- yy269:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0x8F: goto yy274;
- default: goto yy259;
- }
- yy270:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy275;
- default: goto yy271;
- }
- yy271:
- YYCURSOR = YYMARKER;
- if (yyaccept == 0) goto yy261;
- else goto yy259;
- yy272:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy276;
- default: goto yy271;
- }
- yy273:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy260;
- default: goto yy271;
- }
- yy274:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy273;
- default: goto yy271;
- }
- yy275:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy277;
- default: goto yy271;
- }
- yy276:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy278;
- default: goto yy271;
- }
- yy277:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy279;
- default: goto yy271;
- }
- yy278:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy280;
- default: goto yy271;
- }
- yy279:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy272;
- default: goto yy271;
- }
- yy280:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy260;
- default: goto yy271;
- }
- yy281:
- #line 367 "lexer_ttl.re"
- {
- log_warn ("Unterminated string!");
- return -1;
- }
- #line 2503 "parser_ttl.c"
- }
- #line 382 "lexer_ttl.re"
- lchar:
-
- #line 2510 "parser_ttl.c"
- {
- YYCTYPE yych;
- unsigned int yyaccept = 0;
- yych = *YYCURSOR;
- switch (yych) {
- case '\t' ... '\n':
- case '\r':
- case ' ' ... '!':
- case '#' ... '[':
- case ']' ... 0x7F: goto yy285;
- case '"': goto yy287;
- case '\\': goto yy288;
- case 0xC2 ... 0xDF: goto yy289;
- case 0xE0: goto yy290;
- case 0xE1 ... 0xEF: goto yy291;
- case 0xF0: goto yy292;
- case 0xF1 ... 0xF3: goto yy293;
- case 0xF4: goto yy294;
- default:
- if (YYLIMIT <= YYCURSOR) goto yy308;
- goto yy283;
- }
- yy283:
- ++YYCURSOR;
- yy284:
- #line 402 "lexer_ttl.re"
- {
- log_warn (
- "Invalid token in long string @ %lu: %s (\\x%x)",
- YYCURSOR - it->buf - 1, it->tok, *it->tok);
- return -1;
- }
- #line 2544 "parser_ttl.c"
- yy285:
- ++YYCURSOR;
- yy286:
- #line 393 "lexer_ttl.re"
- { goto lchar; }
- #line 2550 "parser_ttl.c"
- yy287:
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '"': goto yy295;
- default: goto yy286;
- }
- yy288:
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case '"':
- case 'n':
- case 'r':
- case 't': goto yy285;
- case 'U': goto yy297;
- case 'u': goto yy298;
- default: goto yy286;
- }
- yy289:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy285;
- default: goto yy284;
- }
- yy290:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0xA0 ... 0xBF: goto yy299;
- default: goto yy284;
- }
- yy291:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0xBF: goto yy299;
- default: goto yy284;
- }
- yy292:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x90 ... 0xBF: goto yy300;
- default: goto yy284;
- }
- yy293:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0xBF: goto yy300;
- default: goto yy284;
- }
- yy294:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 0x80 ... 0x8F: goto yy300;
- default: goto yy284;
- }
- yy295:
- yych = *++YYCURSOR;
- switch (yych) {
- case '"': goto yy301;
- default: goto yy296;
- }
- yy296:
- YYCURSOR = YYMARKER;
- if (yyaccept == 0) goto yy286;
- else goto yy284;
- yy297:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy302;
- default: goto yy296;
- }
- yy298:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy303;
- default: goto yy296;
- }
- yy299:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy285;
- default: goto yy296;
- }
- yy300:
- yych = *++YYCURSOR;
- switch (yych) {
- case 0x80 ... 0xBF: goto yy299;
- default: goto yy296;
- }
- yy301:
- ++YYCURSOR;
- #line 395 "lexer_ttl.re"
- {
- *token_p = unescape_unicode (it->tok + 3, YYCURSOR - it->tok - 6);
- LOG_TRACE("Long string: %s", it->tok);
- return T_STRING;
- }
- #line 2656 "parser_ttl.c"
- yy302:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy304;
- default: goto yy296;
- }
- yy303:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy305;
- default: goto yy296;
- }
- yy304:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy306;
- default: goto yy296;
- }
- yy305:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy307;
- default: goto yy296;
- }
- yy306:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy298;
- default: goto yy296;
- }
- yy307:
- yych = *++YYCURSOR;
- switch (yych) {
- case '0' ... '9':
- case 'A' ... 'F': goto yy285;
- default: goto yy296;
- }
- yy308:
- #line 387 "lexer_ttl.re"
- {
- log_warn ("Unterminated long string!");
- return -1;
- }
- #line 2706 "parser_ttl.c"
- }
- #line 410 "lexer_ttl.re"
- }
- VOLK_rc
- VOLK_ttl_parse_doc (
- FILE *fh, const char *sh, VOLK_Graph **gr_p, size_t *ct, char **err_p)
- {
- *err_p = NULL;
- *gr_p = NULL;
- if (!fh && !sh) {
- log_error ("Neither file handle nor string input provided.");
- return VOLK_VALUE_ERR;
- }
- VOLK_TTLParserState *state = calloc (1, sizeof (*state));
- if (UNLIKELY (!state)) return VOLK_MEM_ERR;
- state->base = NULL;
- state->ct = 0;
- state->rc = VOLK_NORESULT;
- ParseIterator parse_it;
- parse_init (&parse_it, fh, sh);
- void *parser = TTLParseAlloc (malloc);
- // TODO add basic NS, critically xsd: and rdf:
- VOLK_Graph *gr = VOLK_graph_new (NULL, NULL);
- if (UNLIKELY (!gr)) return VOLK_MEM_ERR;
- state->it = VOLK_graph_add_init (gr);
- if (UNLIKELY (!state->it)) {
- VOLK_graph_free (gr);
- return VOLK_MEM_ERR;
- }
- YYCTYPE *token;
- #ifdef DEBUG
- TTLParseTrace (stdout, "TTL Parser > ");
- #endif
- for (;;) {
- int ttype = lex (&parse_it, &token);
- if (ttype == -1) {
- char err_token[16] = {'\0'};
- strncpy (err_token, (const char *)parse_it.tok, 15);
- char *err_start = "Lexer error near token `";
- char err_info [64];
- sprintf(
- err_info, "[...]' at line %u, character %ld.\n",
- parse_it.line, parse_it.cur - parse_it.bol);
- size_t err_size = strlen (err_start) + 16 + strlen(err_info);
- char *err_str = malloc (err_size);
- sprintf (err_str, "%s%s%s", err_start, err_token, err_info);
- log_error (err_str);
- state->rc = VOLK_PARSE_ERR;
- *err_p = err_str;
- goto finally;
- }
- TTLParse (parser, ttype, token, state);
- if (ttype == T_EOF) break;
- };
- if (ct) *ct = state->ct;
- log_info ("Parsed %u triples.", state->ct);
- LOG_DEBUG("Graph size: %lu", VOLK_graph_size (gr));
- *gr_p = gr;
- finally: ;
- VOLK_rc rc = state->rc;
- LOG_TRACE("rc is %d", rc);
- free (parse_it.buf);
- TTLParseFree (parser, free);
- VOLK_graph_add_done (state->it);
- VOLK_term_free (state->base);
- free (state);
- if (rc < 0) VOLK_graph_free (gr);
- return rc;
- }
|