#line 1 "token.re"
#include "syck.h"
#include "gram.h"
#define QUOTELEN 1024
#define YYCTYPE char
#define YYCURSOR parser->cursor
#define YYMARKER parser->marker
#define YYLIMIT parser->limit
#define YYTOKEN parser->token
#define YYTOKTMP parser->toktmp
#define YYLINEPTR parser->lineptr
#define YYLINECTPTR parser->linectptr
#define YYLINE parser->linect
#define YYFILL(n) syck_parser_read(parser)
#define YYPOS(n) YYCURSOR = YYTOKEN + n
#define NEWLINE(ptr) YYLINEPTR = ptr + newline_len(ptr); if ( YYLINEPTR > YYLINECTPTR ) { YYLINE++; YYLINECTPTR = YYLINEPTR; }
#define ADD_LEVEL(len, status) syck_parser_add_level( parser, len, status )
#define POP_LEVEL() syck_parser_pop_level( parser )
#define CURRENT_LEVEL() syck_parser_current_level( parser )
#define FORCE_NEXT_TOKEN(tok) parser->force_token = tok;
#define ENSURE_YAML_IOPEN(last_lvl, to_len, reset) \
if ( last_lvl->spaces < to_len ) \
{ \
if ( last_lvl->status == syck_lvl_iseq || last_lvl->status == syck_lvl_imap ) \
{ \
goto Document; \
} \
else \
{ \
ADD_LEVEL( to_len, syck_lvl_doc ); \
if ( reset == 1 ) YYPOS(0); \
return YAML_IOPEN; \
} \
}
#define ENSURE_YAML_IEND(last_lvl, to_len) \
if ( last_lvl->spaces > to_len ) \
{ \
syck_parser_pop_level( parser ); \
YYPOS(0); \
return YAML_IEND; \
}
#define QUOTECAT(s, c, i, l) \
{ \
if ( i + 1 >= c ) \
{ \
c += QUOTELEN; \
S_REALLOC_N( s, char, c ); \
} \
s[i++] = l; \
s[i] = '\0'; \
}
#define QUOTECATS(s, c, i, cs, cl) \
{ \
while ( i + cl >= c ) \
{ \
c += QUOTELEN; \
S_REALLOC_N( s, char, c ); \
} \
S_MEMCPY( s + i, cs, char, cl ); \
i += cl; \
s[i] = '\0'; \
}
#define RETURN_IMPLICIT() \
{ \
SyckNode *n = syck_alloc_str(); \
YYCURSOR = YYTOKEN; \
n->data.str->ptr = qstr; \
n->data.str->len = qidx; \
n->data.str->style = scalar_plain; \
sycklval->nodeData = n; \
if ( parser->implicit_typing == 1 ) \
{ \
try_tag_implicit( sycklval->nodeData, parser->taguri_expansion ); \
} \
return YAML_PLAIN; \
}
#define PLAIN_NOT_INL() \
if ( *(YYCURSOR - 1) == ' ' || is_newline( YYCURSOR - 1 ) ) \
{ \
YYCURSOR--; \
} \
QUOTECATS(qstr, qcapa, qidx, YYTOKEN, YYCURSOR - YYTOKEN); \
goto Plain2;
#define PLAIN_IS_INL() \
char *walker = qstr + qidx - 1; \
while ( walker > qstr && ( *walker == '\n' || *walker == ' ' || *walker == '\t' ) ) \
{ \
qidx--; \
walker[0] = '\0'; \
walker--; \
}
#define RETURN_YAML_BLOCK() \
{ \
SyckNode *n = syck_alloc_str(); \
if ( ((SyckParser *)parser)->taguri_expansion == 1 ) \
{ \
n->type_id = syck_taguri( YAML_DOMAIN, "str", 3 ); \
} \
else \
{ \
n->type_id = syck_strndup( "str", 3 ); \
} \
n->data.str->ptr = qstr; \
n->data.str->len = qidx; \
if ( blockType == BLOCK_LIT ) { \
n->data.str->style = scalar_literal; \
} else { \
n->data.str->style = scalar_fold; \
} \
if ( qidx > 0 ) \
{ \
if ( nlDoWhat != NL_KEEP ) \
{ \
char *fc = n->data.str->ptr + n->data.str->len - 1; \
while ( is_newline( fc ) ) fc--; \
if ( nlDoWhat != NL_CHOMP && fc < n->data.str->ptr + n->data.str->len - 1 ) \
fc += 1; \
n->data.str->len = fc - n->data.str->ptr + 1; \
} \
} \
sycklval->nodeData = n; \
return YAML_BLOCK; \
}
#define GOBBLE_UP_YAML_INDENT( ict, start ) \
char *indent = start; \
NEWLINE(indent); \
while ( indent < YYCURSOR ) \
{ \
if ( is_newline( ++indent ) ) \
{ \
NEWLINE(indent); \
} \
} \
ict = 0; \
if ( *YYCURSOR == '\0' ) \
{ \
ict = -1; \
start = YYCURSOR - 1; \
} \
else if ( *YYLINEPTR == ' ' ) \
{ \
ict = YYCURSOR - YYLINEPTR; \
}
#define GET_TRUE_YAML_INDENT(indt_len) \
{ \
SyckLevel *lvl_deep = CURRENT_LEVEL(); \
indt_len = lvl_deep->spaces; \
if ( lvl_deep->status == syck_lvl_seq || ( indt_len == YYCURSOR - YYLINEPTR && lvl_deep->status != syck_lvl_map ) ) \
{ \
SyckLevel *lvl_over; \
parser->lvl_idx--; \
lvl_over = CURRENT_LEVEL(); \
indt_len = lvl_over->spaces; \
parser->lvl_idx++; \
} \
}
SyckParser *syck_parser_ptr = NULL;
void eat_comments( SyckParser * );
char escape_seq( char );
int is_newline( char *ptr );
int newline_len( char *ptr );
int sycklex_yaml_utf8( YYSTYPE *, SyckParser * );
int sycklex_bytecode_utf8( YYSTYPE *, SyckParser * );
int syckwrap();
int
sycklex( YYSTYPE *sycklval, SyckParser *parser )
{
switch ( parser->input_type )
{
case syck_yaml_utf8:
return sycklex_yaml_utf8( sycklval, parser );
case syck_yaml_utf16:
syckerror( "UTF-16 is not currently supported in Syck.\nPlease contribute code to help this happen!" );
break;
case syck_yaml_utf32:
syckerror( "UTF-32 is not currently supported in Syck.\nPlease contribute code to help this happen!" );
break;
case syck_bytecode_utf8:
return sycklex_bytecode_utf8( sycklval, parser );
}
return YAML_DOCSEP;
}
int
sycklex_yaml_utf8( YYSTYPE *sycklval, SyckParser *parser )
{
int doc_level = 0;
syck_parser_ptr = parser;
if ( YYCURSOR == NULL )
{
syck_parser_read( parser );
}
if ( parser->force_token != 0 )
{
int t = parser->force_token;
parser->force_token = 0;
return t;
}
#line 315 "token.re"
if ( YYLINEPTR != YYCURSOR )
{
goto Document;
}
Header:
YYTOKEN = YYCURSOR;
#line 307 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
yych = *YYCURSOR;
switch(yych){
case 0x00: goto yy7;
case 0x09:
case ' ': goto yy12;
case 0x0A: goto yy9;
case 0x0D: goto yy11;
case '#': goto yy5;
case '-': goto yy2;
case '.': goto yy4;
default: goto yy14;
}
yy2:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '-': goto yy28;
default: goto yy3;
}
yy3:
#line 374 "token.re"
{ YYPOS(0);
goto Document;
}
#line 337 "<stdout>"
yy4:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '.': goto yy21;
default: goto yy3;
}
yy5:
++YYCURSOR;
#line 356 "token.re"
{ eat_comments( parser );
goto Header;
}
#line 351 "<stdout>"
yy7:
++YYCURSOR;
#line 360 "token.re"
{ SyckLevel *lvl = CURRENT_LEVEL();
ENSURE_YAML_IEND(lvl, -1);
YYPOS(0);
return 0;
}
#line 360 "<stdout>"
yy9:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
goto yy18;
yy10:
#line 366 "token.re"
{ GOBBLE_UP_YAML_INDENT( doc_level, YYTOKEN );
goto Header;
}
#line 370 "<stdout>"
yy11:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy17;
default: goto yy3;
}
yy12:
++YYCURSOR;
yych = *YYCURSOR;
goto yy16;
yy13:
#line 370 "token.re"
{ doc_level = YYCURSOR - YYLINEPTR;
goto Header;
}
#line 386 "<stdout>"
yy14:
yych = *++YYCURSOR;
goto yy3;
yy15:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy16:
switch(yych){
case 0x09:
case ' ': goto yy15;
default: goto yy13;
}
yy17:
yyaccept = 1;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy18:
switch(yych){
case 0x0A:
case ' ': goto yy17;
case 0x0D: goto yy19;
default: goto yy10;
}
yy19:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case 0x0A: goto yy17;
default: goto yy20;
}
yy20:
YYCURSOR = YYMARKER;
switch(yyaccept){
case 1: goto yy10;
case 0: goto yy3;
}
yy21:
yych = *++YYCURSOR;
switch(yych){
case '.': goto yy22;
default: goto yy20;
}
yy22:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy23;
case 0x0D: goto yy27;
case ' ': goto yy25;
default: goto yy20;
}
yy23:
++YYCURSOR;
yy24:
#line 342 "token.re"
{ SyckLevel *lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_header )
{
goto Header;
}
else
{
ENSURE_YAML_IEND(lvl, -1);
YYPOS(0);
return 0;
}
return 0;
}
#line 457 "<stdout>"
yy25:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case ' ': goto yy25;
default: goto yy24;
}
yy27:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy23;
default: goto yy20;
}
yy28:
yych = *++YYCURSOR;
switch(yych){
case '-': goto yy29;
default: goto yy20;
}
yy29:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy30;
case 0x0D: goto yy34;
case ' ': goto yy32;
default: goto yy20;
}
yy30:
++YYCURSOR;
yy31:
#line 328 "token.re"
{ SyckLevel *lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_header )
{
YYPOS(3);
goto Directive;
}
else
{
ENSURE_YAML_IEND(lvl, -1);
YYPOS(0);
return 0;
}
}
#line 503 "<stdout>"
yy32:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case ' ': goto yy32;
default: goto yy31;
}
yy34:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
case 0x0A: goto yy30;
default: goto yy20;
}
}
#line 378 "token.re"
Document:
{
SyckLevel *lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_header )
{
lvl->status = syck_lvl_doc;
}
YYTOKEN = YYCURSOR;
#line 533 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
switch(yych){
case 0x00: goto yy62;
case 0x09:
case ' ': goto yy60;
case 0x0A: goto yy37;
case 0x0D: goto yy39;
case '!': goto yy51;
case '"': goto yy55;
case '#': goto yy58;
case '&': goto yy49;
case '\'': goto yy53;
case '*': goto yy50;
case ',':
case ':': goto yy47;
case '-':
case '?': goto yy48;
case '>':
case '|': goto yy57;
case '[': goto yy41;
case ']':
case '}': goto yy45;
case '{': goto yy43;
default: goto yy64;
}
yy37:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy92;
yy38:
#line 392 "token.re"
{
int indt_len;
GOBBLE_UP_YAML_INDENT( indt_len, YYTOKEN );
lvl = CURRENT_LEVEL();
doc_level = 0;
if ( *YYCURSOR == '#' )
{
goto Document;
}
if ( lvl->status == syck_lvl_iseq || lvl->status == syck_lvl_imap )
{
goto Document;
}
ENSURE_YAML_IEND(lvl, indt_len);
ENSURE_YAML_IOPEN(lvl, indt_len, 0);
if ( indt_len == -1 )
{
return 0;
}
return YAML_INDENT;
}
#line 596 "<stdout>"
yy39:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
case 0x0A: goto yy91;
default: goto yy40;
}
yy40:
#line 500 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1);
goto Plain;
}
#line 608 "<stdout>"
yy41:
++YYCURSOR;
#line 420 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1);
lvl = CURRENT_LEVEL();
ADD_LEVEL(lvl->spaces + 1, syck_lvl_iseq);
return YYTOKEN[0];
}
#line 617 "<stdout>"
yy43:
++YYCURSOR;
#line 426 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1);
lvl = CURRENT_LEVEL();
ADD_LEVEL(lvl->spaces + 1, syck_lvl_imap);
return YYTOKEN[0];
}
#line 626 "<stdout>"
yy45:
++YYCURSOR;
#line 432 "token.re"
{ POP_LEVEL();
return YYTOKEN[0];
}
#line 633 "<stdout>"
yy47:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case 0x0A: goto yy86;
case 0x0D: goto yy90;
case ' ': goto yy88;
default: goto yy40;
}
yy48:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case 0x0A: goto yy81;
case 0x0D: goto yy85;
case ' ': goto yy83;
default: goto yy40;
}
yy49:
yych = *++YYCURSOR;
switch(yych){
case '-':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '_':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy78;
default: goto yy40;
}
yy50:
yych = *++YYCURSOR;
switch(yych){
case '-':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '_':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy75;
default: goto yy40;
}
yy51:
++YYCURSOR;
#line 474 "token.re"
{ goto TransferMethod; }
#line 794 "<stdout>"
yy53:
++YYCURSOR;
#line 476 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1);
goto SingleQuote; }
#line 800 "<stdout>"
yy55:
++YYCURSOR;
#line 479 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1);
goto DoubleQuote; }
#line 806 "<stdout>"
yy57:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case 0x0A: goto yy70;
case 0x0D: goto yy74;
case ' ': goto yy72;
case '+':
case '-':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': goto yy67;
default: goto yy40;
}
yy58:
++YYCURSOR;
#line 489 "token.re"
{ eat_comments( parser );
goto Document;
}
#line 834 "<stdout>"
yy60:
++YYCURSOR;
yych = *YYCURSOR;
goto yy66;
yy61:
#line 493 "token.re"
{ goto Document; }
#line 842 "<stdout>"
yy62:
++YYCURSOR;
#line 495 "token.re"
{ ENSURE_YAML_IEND(lvl, -1);
YYPOS(0);
return 0;
}
#line 850 "<stdout>"
yy64:
yych = *++YYCURSOR;
goto yy40;
yy65:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy66:
switch(yych){
case 0x09:
case ' ': goto yy65;
default: goto yy61;
}
yy67:
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
case 0x0A: goto yy70;
case 0x0D: goto yy74;
case ' ': goto yy72;
case '+':
case '-':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': goto yy67;
default: goto yy69;
}
yy69:
YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy38;
case 1: goto yy40;
}
yy70:
++YYCURSOR;
yy71:
#line 482 "token.re"
{ if ( is_newline( YYCURSOR - 1 ) )
{
YYCURSOR--;
}
goto ScalarBlock;
}
#line 902 "<stdout>"
yy72:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case ' ': goto yy72;
default: goto yy71;
}
yy74:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy70;
default: goto yy69;
}
yy75:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case '-':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '_':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy75;
default: goto yy77;
}
yy77:
#line 469 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1);
sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 );
return YAML_ALIAS;
}
#line 994 "<stdout>"
yy78:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case '-':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '_':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy78;
default: goto yy80;
}
yy80:
#line 458 "token.re"
{ sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 );
syck_hdlr_remove_anchor(parser, sycklval->name);
return YAML_ANCHOR;
}
#line 1078 "<stdout>"
yy81:
++YYCURSOR;
yy82:
#line 444 "token.re"
{ ENSURE_YAML_IOPEN(lvl, YYTOKEN - YYLINEPTR, 1);
FORCE_NEXT_TOKEN(YAML_IOPEN);
if ( *YYCURSOR == '#' || is_newline( YYCURSOR ) || is_newline( YYCURSOR - 1 ) )
{
YYCURSOR--;
ADD_LEVEL((YYTOKEN + 1) - YYLINEPTR, syck_lvl_seq);
}
else
{
ADD_LEVEL(YYCURSOR - YYLINEPTR, syck_lvl_seq);
}
return YYTOKEN[0];
}
#line 1096 "<stdout>"
yy83:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case ' ': goto yy83;
default: goto yy82;
}
yy85:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy81;
default: goto yy69;
}
yy86:
++YYCURSOR;
yy87:
#line 436 "token.re"
{ if ( *YYTOKEN == ':' && lvl->status != syck_lvl_imap && lvl->status != syck_lvl_iseq )
{
lvl->status = syck_lvl_map;
}
YYPOS(1);
return YYTOKEN[0];
}
#line 1122 "<stdout>"
yy88:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case ' ': goto yy88;
default: goto yy87;
}
yy90:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy86;
default: goto yy69;
}
yy91:
yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy92:
switch(yych){
case 0x0A:
case ' ': goto yy91;
case 0x0D: goto yy93;
default: goto yy38;
}
yy93:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case 0x0A: goto yy91;
default: goto yy69;
}
}
#line 504 "token.re"
}
Directive:
{
YYTOKTMP = YYCURSOR;
#line 1167 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
case 0x00: goto yy96;
case 0x09:
case ' ': goto yy99;
case '%': goto yy97;
default: goto yy101;
}
yy96:
YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy98;
}
yy97:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '.':
case '/':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case ':':
case ';':
case '<':
case '=':
case '>':
case '?':
case '@':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '[':
case '\\':
case ']':
case '^':
case '_':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy104;
default: goto yy98;
}
yy98:
#line 517 "token.re"
{ YYCURSOR = YYTOKTMP;
return YAML_DOCSEP;
}
#line 1272 "<stdout>"
yy99:
++YYCURSOR;
yych = *YYCURSOR;
goto yy103;
yy100:
#line 515 "token.re"
{ goto Directive; }
#line 1280 "<stdout>"
yy101:
yych = *++YYCURSOR;
goto yy98;
yy102:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy103:
switch(yych){
case 0x09:
case ' ': goto yy102;
default: goto yy100;
}
yy104:
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
case '.':
case '/':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case ';':
case '<':
case '=':
case '>':
case '?':
case '@':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '[':
case '\\':
case ']':
case '^':
case '_':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy104;
case ':': goto yy106;
default: goto yy96;
}
yy106:
yych = *++YYCURSOR;
switch(yych){
case '.':
case '/':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case ':':
case ';':
case '<':
case '=':
case '>':
case '?':
case '@':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '[':
case '\\':
case ']':
case '^':
case '_':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy107;
default: goto yy96;
}
yy107:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case '.':
case '/':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case ':':
case ';':
case '<':
case '=':
case '>':
case '?':
case '@':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '[':
case '\\':
case ']':
case '^':
case '_':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy107;
default: goto yy109;
}
yy109:
#line 513 "token.re"
{ goto Directive; }
#line 1544 "<stdout>"
}
#line 520 "token.re"
}
Plain:
{
int qidx = 0;
int qcapa = 100;
char *qstr = S_ALLOC_N( char, qcapa );
SyckLevel *plvl;
int parentIndent;
YYCURSOR = YYTOKEN;
plvl = CURRENT_LEVEL();
GET_TRUE_YAML_INDENT(parentIndent);
Plain2:
YYTOKEN = YYCURSOR;
Plain3:
#line 1569 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
switch(yych){
case 0x00: goto yy124;
case 0x09: goto yy126;
case 0x0A: goto yy112;
case 0x0D: goto yy114;
case ' ': goto yy122;
case ',': goto yy117;
case ':': goto yy116;
case ']': goto yy120;
case '}': goto yy118;
default: goto yy127;
}
yy112:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy142;
yy113:
#line 543 "token.re"
{ int indt_len, nl_count = 0;
SyckLevel *lvl;
char *tok = YYTOKEN;
GOBBLE_UP_YAML_INDENT( indt_len, tok );
lvl = CURRENT_LEVEL();
if ( indt_len <= parentIndent )
{
RETURN_IMPLICIT();
}
while ( YYTOKEN < YYCURSOR )
{
int nl_len = newline_len( YYTOKEN++ );
if ( nl_len )
{
nl_count++;
YYTOKEN += nl_len - 1;
}
}
if ( nl_count <= 1 )
{
QUOTECAT(qstr, qcapa, qidx, ' ');
}
else
{
int i;
for ( i = 0; i < nl_count - 1; i++ )
{
QUOTECAT(qstr, qcapa, qidx, '\n');
}
}
goto Plain2;
}
#line 1628 "<stdout>"
yy114:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
case 0x0A: goto yy141;
default: goto yy115;
}
yy115:
#line 630 "token.re"
{ QUOTECATS(qstr, qcapa, qidx, YYTOKEN, YYCURSOR - YYTOKEN);
goto Plain2;
}
#line 1640 "<stdout>"
yy116:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case 0x0A: goto yy136;
case 0x0D: goto yy140;
case ' ': goto yy138;
default: goto yy115;
}
yy117:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case 0x0A: goto yy130;
case 0x0D: goto yy134;
case ' ': goto yy132;
default: goto yy115;
}
yy118:
++YYCURSOR;
#line 592 "token.re"
{ if ( plvl->status != syck_lvl_imap )
{
PLAIN_NOT_INL();
}
else
{
PLAIN_IS_INL();
}
RETURN_IMPLICIT();
}
#line 1672 "<stdout>"
yy120:
++YYCURSOR;
#line 603 "token.re"
{ if ( plvl->status != syck_lvl_iseq )
{
PLAIN_NOT_INL();
}
else
{
PLAIN_IS_INL();
}
RETURN_IMPLICIT();
}
#line 1686 "<stdout>"
yy122:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
case '#': goto yy128;
default: goto yy123;
}
yy123:
#line 620 "token.re"
{ if ( qidx == 0 )
{
goto Plain2;
}
else
{
goto Plain3;
}
}
#line 1704 "<stdout>"
yy124:
++YYCURSOR;
#line 618 "token.re"
{ RETURN_IMPLICIT(); }
#line 1709 "<stdout>"
yy126:
yych = *++YYCURSOR;
goto yy123;
yy127:
yych = *++YYCURSOR;
goto yy115;
yy128:
++YYCURSOR;
#line 614 "token.re"
{ eat_comments( parser );
RETURN_IMPLICIT();
}
#line 1722 "<stdout>"
yy130:
++YYCURSOR;
yy131:
#line 581 "token.re"
{ if ( plvl->status != syck_lvl_iseq && plvl->status != syck_lvl_imap )
{
PLAIN_NOT_INL();
}
else
{
PLAIN_IS_INL();
}
RETURN_IMPLICIT();
}
#line 1737 "<stdout>"
yy132:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case ' ': goto yy132;
default: goto yy131;
}
yy134:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy130;
default: goto yy135;
}
yy135:
YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy113;
case 1: goto yy115;
}
yy136:
++YYCURSOR;
yy137:
#line 579 "token.re"
{ RETURN_IMPLICIT(); }
#line 1763 "<stdout>"
yy138:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case ' ': goto yy138;
default: goto yy137;
}
yy140:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy136;
default: goto yy135;
}
yy141:
yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy142:
switch(yych){
case 0x0A:
case ' ': goto yy141;
case 0x0D: goto yy143;
default: goto yy113;
}
yy143:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case 0x0A: goto yy141;
default: goto yy135;
}
}
#line 634 "token.re"
}
SingleQuote:
{
int qidx = 0;
int qcapa = 100;
char *qstr = S_ALLOC_N( char, qcapa );
SingleQuote2:
YYTOKEN = YYCURSOR;
#line 1813 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
case 0x00: goto yy152;
case 0x0A: goto yy146;
case 0x0D: goto yy148;
case '\'': goto yy150;
default: goto yy153;
}
yy146:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy157;
yy147:
#line 648 "token.re"
{ int indt_len;
int nl_count = 0;
SyckLevel *lvl;
GOBBLE_UP_YAML_INDENT( indt_len, YYTOKEN );
lvl = CURRENT_LEVEL();
if ( lvl->status != syck_lvl_str )
{
ADD_LEVEL( indt_len, syck_lvl_str );
}
else if ( indt_len < lvl->spaces )
{
}
while ( YYTOKEN < YYCURSOR )
{
int nl_len = newline_len( YYTOKEN++ );
if ( nl_len )
{
nl_count++;
YYTOKEN += nl_len - 1;
}
}
if ( nl_count <= 1 )
{
QUOTECAT(qstr, qcapa, qidx, ' ');
}
else
{
int i;
for ( i = 0; i < nl_count - 1; i++ )
{
QUOTECAT(qstr, qcapa, qidx, '\n');
}
}
goto SingleQuote2;
}
#line 1871 "<stdout>"
yy148:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
case 0x0A: goto yy156;
default: goto yy149;
}
yy149:
#line 715 "token.re"
{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1));
goto SingleQuote2;
}
#line 1883 "<stdout>"
yy150:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
case '\'': goto yy154;
default: goto yy151;
}
yy151:
#line 692 "token.re"
{ SyckLevel *lvl;
SyckNode *n = syck_alloc_str();
lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_str )
{
POP_LEVEL();
}
if ( ((SyckParser *)parser)->taguri_expansion == 1 )
{
n->type_id = syck_taguri( YAML_DOMAIN, "str", 3 );
}
else
{
n->type_id = syck_strndup( "str", 3 );
}
n->data.str->ptr = qstr;
n->data.str->len = qidx;
n->data.str->style = scalar_1quote;
sycklval->nodeData = n;
return YAML_PLAIN;
}
#line 1914 "<stdout>"
yy152:
yych = *++YYCURSOR;
goto yy151;
yy153:
yych = *++YYCURSOR;
goto yy149;
yy154:
++YYCURSOR;
#line 688 "token.re"
{ QUOTECAT(qstr, qcapa, qidx, '\'');
goto SingleQuote2;
}
#line 1927 "<stdout>"
yy156:
yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy157:
switch(yych){
case 0x0A:
case ' ': goto yy156;
case 0x0D: goto yy158;
default: goto yy147;
}
yy158:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case 0x0A: goto yy156;
default: goto yy159;
}
yy159:
YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy147;
}
}
#line 719 "token.re"
}
DoubleQuote:
{
int keep_nl = 1;
int qidx = 0;
int qcapa = 100;
char *qstr = S_ALLOC_N( char, qcapa );
DoubleQuote2:
YYTOKEN = YYCURSOR;
#line 1972 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
yych = *YYCURSOR;
switch(yych){
case 0x00: goto yy167;
case 0x0A: goto yy162;
case 0x0D: goto yy164;
case '"': goto yy169;
case '\\': goto yy166;
default: goto yy170;
}
yy162:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy184;
yy163:
#line 737 "token.re"
{ int indt_len;
int nl_count = 0;
SyckLevel *lvl;
GOBBLE_UP_YAML_INDENT( indt_len, YYTOKEN );
lvl = CURRENT_LEVEL();
if ( lvl->status != syck_lvl_str )
{
ADD_LEVEL( indt_len, syck_lvl_str );
}
else if ( indt_len < lvl->spaces )
{
}
if ( keep_nl == 1 )
{
while ( YYTOKEN < YYCURSOR )
{
int nl_len = newline_len( YYTOKEN++ );
if ( nl_len )
{
nl_count++;
YYTOKEN += nl_len - 1;
}
}
if ( nl_count <= 1 )
{
QUOTECAT(qstr, qcapa, qidx, ' ');
}
else
{
int i;
for ( i = 0; i < nl_count - 1; i++ )
{
QUOTECAT(qstr, qcapa, qidx, '\n');
}
}
}
keep_nl = 1;
goto DoubleQuote2;
}
#line 2035 "<stdout>"
yy164:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
case 0x0A: goto yy183;
default: goto yy165;
}
yy165:
#line 823 "token.re"
{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1));
goto DoubleQuote2;
}
#line 2047 "<stdout>"
yy166:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case 0x0A: goto yy174;
case 0x0D: goto yy176;
case ' ': goto yy171;
case '"':
case '0':
case '\\':
case 'a':
case 'b':
case 'e':
case 'f':
case 'n':
case 'r':
case 't':
case 'v': goto yy178;
case 'x': goto yy177;
default: goto yy165;
}
yy167:
++YYCURSOR;
yy168:
#line 800 "token.re"
{ SyckLevel *lvl;
SyckNode *n = syck_alloc_str();
lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_str )
{
POP_LEVEL();
}
if ( ((SyckParser *)parser)->taguri_expansion == 1 )
{
n->type_id = syck_taguri( YAML_DOMAIN, "str", 3 );
}
else
{
n->type_id = syck_strndup( "str", 3 );
}
n->data.str->ptr = qstr;
n->data.str->len = qidx;
n->data.str->style = scalar_2quote;
sycklval->nodeData = n;
return YAML_PLAIN;
}
#line 2095 "<stdout>"
yy169:
yych = *++YYCURSOR;
goto yy168;
yy170:
yych = *++YYCURSOR;
goto yy165;
yy171:
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
case 0x0A: goto yy174;
case 0x0D: goto yy176;
case ' ': goto yy171;
default: goto yy173;
}
yy173:
YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy163;
case 1: goto yy165;
}
yy174:
++YYCURSOR;
#line 795 "token.re"
{ keep_nl = 0;
YYCURSOR--;
goto DoubleQuote2;
}
#line 2125 "<stdout>"
yy176:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy174;
default: goto yy173;
}
yy177:
yych = *++YYCURSOR;
switch(yych){
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f': goto yy180;
default: goto yy173;
}
yy178:
++YYCURSOR;
#line 781 "token.re"
{ char ch = *( YYCURSOR - 1 );
QUOTECAT(qstr, qcapa, qidx, escape_seq( ch ));
goto DoubleQuote2;
}
#line 2166 "<stdout>"
yy180:
yych = *++YYCURSOR;
switch(yych){
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f': goto yy181;
default: goto yy173;
}
yy181:
++YYCURSOR;
#line 786 "token.re"
{ long ch;
char *chr_text = syck_strndup( YYTOKEN, 4 );
chr_text[0] = '0';
ch = strtol( chr_text, NULL, 16 );
free( chr_text );
QUOTECAT(qstr, qcapa, qidx, ch);
goto DoubleQuote2;
}
#line 2205 "<stdout>"
yy183:
yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy184:
switch(yych){
case 0x0A:
case ' ': goto yy183;
case 0x0D: goto yy185;
default: goto yy163;
}
yy185:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case 0x0A: goto yy183;
default: goto yy173;
}
}
#line 827 "token.re"
}
TransferMethod:
{
int qidx = 0;
int qcapa = 100;
char *qstr = S_ALLOC_N( char, qcapa );
TransferMethod2:
YYTOKTMP = YYCURSOR;
#line 2241 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
yych = *YYCURSOR;
switch(yych){
case 0x00: goto yy188;
case 0x0A: goto yy190;
case 0x0D: goto yy192;
case ' ': goto yy191;
case '\\': goto yy194;
default: goto yy195;
}
yy188:
++YYCURSOR;
yy189:
#line 841 "token.re"
{ SyckLevel *lvl;
YYCURSOR = YYTOKTMP;
if ( YYCURSOR == YYTOKEN + 1 )
{
free( qstr );
return YAML_ITRANSFER;
}
lvl = CURRENT_LEVEL();
if ( *qstr == '^' )
{
sycklval->name = S_ALLOC_N( char, qidx + strlen( lvl->domain ) );
sycklval->name[0] = '\0';
strcat( sycklval->name, lvl->domain );
strncat( sycklval->name, qstr + 1, qidx - 1 );
free( qstr );
}
else
{
char *carat = qstr;
char *qend = qstr + qidx;
while ( (++carat) < qend )
{
if ( *carat == '^' )
break;
}
if ( carat < qend )
{
free( lvl->domain );
lvl->domain = syck_strndup( qstr, carat - qstr );
sycklval->name = S_ALLOC_N( char, ( qend - carat ) + strlen( lvl->domain ) );
sycklval->name[0] = '\0';
strcat( sycklval->name, lvl->domain );
strncat( sycklval->name, carat + 1, ( qend - carat ) - 1 );
free( qstr );
}
else
{
sycklval->name = qstr;
}
}
return YAML_TRANSFER;
}
#line 2308 "<stdout>"
yy190:
yych = *++YYCURSOR;
goto yy189;
yy191:
yych = *++YYCURSOR;
goto yy204;
yy192:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
case 0x0A: goto yy188;
default: goto yy193;
}
yy193:
#line 908 "token.re"
{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1));
goto TransferMethod2;
}
#line 2326 "<stdout>"
yy194:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '"':
case '0':
case '\\':
case 'a':
case 'b':
case 'e':
case 'f':
case 'n':
case 'r':
case 't':
case 'v': goto yy198;
case 'x': goto yy196;
default: goto yy193;
}
yy195:
yych = *++YYCURSOR;
goto yy193;
yy196:
yych = *++YYCURSOR;
switch(yych){
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f': goto yy200;
default: goto yy197;
}
yy197:
YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy193;
}
yy198:
++YYCURSOR;
#line 894 "token.re"
{ char ch = *( YYCURSOR - 1 );
QUOTECAT(qstr, qcapa, qidx, escape_seq( ch ));
goto TransferMethod2;
}
#line 2387 "<stdout>"
yy200:
yych = *++YYCURSOR;
switch(yych){
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f': goto yy201;
default: goto yy197;
}
yy201:
++YYCURSOR;
#line 899 "token.re"
{ long ch;
char *chr_text = syck_strndup( YYTOKTMP, 4 );
chr_text[0] = '0';
ch = strtol( chr_text, NULL, 16 );
free( chr_text );
QUOTECAT(qstr, qcapa, qidx, ch);
goto TransferMethod2;
}
#line 2426 "<stdout>"
yy203:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy204:
switch(yych){
case ' ': goto yy203;
default: goto yy189;
}
}
#line 913 "token.re"
}
ScalarBlock:
{
int qidx = 0;
int qcapa = 100;
char *qstr = S_ALLOC_N( char, qcapa );
int blockType = 0;
int nlDoWhat = 0;
int lastIndent = 0;
int forceIndent = -1;
char *yyt = YYTOKEN;
SyckLevel *lvl = CURRENT_LEVEL();
int parentIndent = -1;
switch ( *yyt )
{
case '|': blockType = BLOCK_LIT; break;
case '>': blockType = BLOCK_FOLD; break;
}
while ( ++yyt <= YYCURSOR )
{
if ( *yyt == '-' )
{
nlDoWhat = NL_CHOMP;
}
else if ( *yyt == '+' )
{
nlDoWhat = NL_KEEP;
}
else if ( isdigit( *yyt ) )
{
forceIndent = strtol( yyt, NULL, 10 );
}
}
qstr[0] = '\0';
YYTOKEN = YYCURSOR;
ScalarBlock2:
YYTOKEN = YYCURSOR;
#line 2483 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
yych = *YYCURSOR;
switch(yych){
case 0x00: goto yy213;
case 0x0A: goto yy207;
case 0x0D: goto yy209;
case '#': goto yy211;
case '-': goto yy215;
default: goto yy216;
}
yy207:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy226;
yy208:
#line 959 "token.re"
{ char *pacer;
char *tok = YYTOKEN;
int indt_len = 0, nl_count = 0, fold_nl = 0, nl_begin = 0;
GOBBLE_UP_YAML_INDENT( indt_len, tok );
lvl = CURRENT_LEVEL();
if ( lvl->status != syck_lvl_block )
{
GET_TRUE_YAML_INDENT(parentIndent);
if ( forceIndent > 0 ) forceIndent += parentIndent;
if ( indt_len > parentIndent )
{
int new_spaces = forceIndent > 0 ? forceIndent : indt_len;
ADD_LEVEL( new_spaces, syck_lvl_block );
lastIndent = indt_len - new_spaces;
nl_begin = 1;
lvl = CURRENT_LEVEL();
}
else
{
YYCURSOR = YYTOKEN;
RETURN_YAML_BLOCK();
}
}
if ( blockType == BLOCK_FOLD && lastIndent == 0 && ( indt_len - lvl->spaces ) == 0 )
{
fold_nl = 1;
}
pacer = YYTOKEN;
while ( pacer < YYCURSOR )
{
int nl_len = newline_len( pacer++ );
if ( nl_len )
{
nl_count++;
pacer += nl_len - 1;
}
}
if ( fold_nl == 1 || nl_begin == 1 )
{
nl_count--;
}
if ( nl_count < 1 && nl_begin == 0 )
{
QUOTECAT(qstr, qcapa, qidx, ' ');
}
else
{
int i;
for ( i = 0; i < nl_count; i++ )
{
QUOTECAT(qstr, qcapa, qidx, '\n');
}
}
lastIndent = indt_len - lvl->spaces;
YYCURSOR -= lastIndent;
if ( indt_len < lvl->spaces )
{
POP_LEVEL();
YYCURSOR = YYTOKEN;
RETURN_YAML_BLOCK();
}
goto ScalarBlock2;
}
#line 2577 "<stdout>"
yy209:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
case 0x0A: goto yy225;
default: goto yy210;
}
yy210:
#line 1073 "token.re"
{ QUOTECAT(qstr, qcapa, qidx, *YYTOKEN);
goto ScalarBlock2;
}
#line 2589 "<stdout>"
yy211:
++YYCURSOR;
#line 1035 "token.re"
{ lvl = CURRENT_LEVEL();
if ( lvl->status != syck_lvl_block )
{
eat_comments( parser );
YYTOKEN = YYCURSOR;
}
else
{
QUOTECAT(qstr, qcapa, qidx, *YYTOKEN);
}
goto ScalarBlock2;
}
#line 2605 "<stdout>"
yy213:
++YYCURSOR;
#line 1049 "token.re"
{ YYCURSOR--;
POP_LEVEL();
RETURN_YAML_BLOCK();
}
#line 2613 "<stdout>"
yy215:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '-': goto yy217;
default: goto yy210;
}
yy216:
yych = *++YYCURSOR;
goto yy210;
yy217:
yych = *++YYCURSOR;
switch(yych){
case '-': goto yy219;
default: goto yy218;
}
yy218:
YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy208;
case 1: goto yy210;
}
yy219:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy220;
case 0x0D: goto yy224;
case ' ': goto yy222;
default: goto yy218;
}
yy220:
++YYCURSOR;
yy221:
#line 1054 "token.re"
{ if ( YYTOKEN == YYLINEPTR )
{
if ( blockType == BLOCK_FOLD && qidx > 0 )
{
qidx -= 1;
}
QUOTECAT(qstr, qcapa, qidx, '\n');
POP_LEVEL();
YYCURSOR = YYTOKEN;
RETURN_YAML_BLOCK();
}
else
{
QUOTECAT(qstr, qcapa, qidx, *YYTOKEN);
YYCURSOR = YYTOKEN + 1;
goto ScalarBlock2;
}
}
#line 2666 "<stdout>"
yy222:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case ' ': goto yy222;
default: goto yy221;
}
yy224:
yych = *++YYCURSOR;
switch(yych){
case 0x0A: goto yy220;
default: goto yy218;
}
yy225:
yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy226:
switch(yych){
case 0x0A:
case ' ': goto yy225;
case 0x0D: goto yy227;
default: goto yy208;
}
yy227:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case 0x0A: goto yy225;
default: goto yy218;
}
}
#line 1078 "token.re"
}
return 0;
}
void
eat_comments( SyckParser *parser )
{
Comment:
{
YYTOKEN = YYCURSOR;
#line 2718 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
case 0x00: goto yy230;
case 0x0A: goto yy232;
case 0x0D: goto yy233;
default: goto yy235;
}
yy230:
++YYCURSOR;
yy231:
#line 1094 "token.re"
{ YYCURSOR = YYTOKEN;
return;
}
#line 2737 "<stdout>"
yy232:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy237;
yy233:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
case 0x0A: goto yy236;
default: goto yy234;
}
yy234:
#line 1098 "token.re"
{ goto Comment;
}
#line 2752 "<stdout>"
yy235:
yych = *++YYCURSOR;
goto yy234;
yy236:
yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy237:
switch(yych){
case 0x0A: goto yy236;
case 0x0D: goto yy238;
default: goto yy231;
}
yy238:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case 0x0A: goto yy236;
default: goto yy239;
}
yy239:
YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy231;
}
}
#line 1101 "token.re"
}
}
char
escape_seq( char ch )
{
switch ( ch )
{
case '0': return '\0';
case 'a': return 7;
case 'b': return '\010';
case 'e': return '\033';
case 'f': return '\014';
case 'n': return '\n';
case 'r': return '\015';
case 't': return '\t';
case 'v': return '\013';
default: return ch;
}
}
int
is_newline( char *ptr )
{
return newline_len( ptr );
}
int
newline_len( char *ptr )
{
if ( *ptr == '\n' )
return 1;
if ( *ptr == '\r' && *( ptr + 1 ) == '\n' )
return 2;
return 0;
}
int
syckwrap()
{
return 1;
}
void
syckerror( char *msg )
{
if ( syck_parser_ptr->error_handler == NULL )
syck_parser_ptr->error_handler = syck_default_error_handler;
syck_parser_ptr->root = syck_parser_ptr->root_on_error;
(syck_parser_ptr->error_handler)(syck_parser_ptr, msg);
}