diff options
Diffstat (limited to 'ext/syck/token.c')
| -rw-r--r-- | ext/syck/token.c | 2394 |
1 files changed, 0 insertions, 2394 deletions
diff --git a/ext/syck/token.c b/ext/syck/token.c deleted file mode 100644 index f9e0601e52..0000000000 --- a/ext/syck/token.c +++ /dev/null @@ -1,2394 +0,0 @@ -/* Generated by re2c 0.5 on Tue Nov 25 12:10:28 2003 */ -#line 1 "token.re" -/* - * token.re - * - * $Author$ - * $Date$ - * - * Copyright (C) 2003 why the lucky stiff - */ -#include "syck.h" -#include "ruby.h" -#include "gram.h" - -/* - * Allocate quoted strings in chunks - */ -#define QUOTELEN 1024 - -/* - * They do my bidding... - */ -#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) - -/* - * Repositions the cursor at `n' offset from the token start. - * Only works in `Header' and `Document' sections. - */ -#define YYPOS(n) YYCURSOR = YYTOKEN + n - -/* - * Track line numbers - */ -#define NEWLINE(ptr) YYLINEPTR = ptr + 1; if ( YYLINEPTR > YYLINECTPTR ) { YYLINE++; YYLINECTPTR = YYLINEPTR; } - -/* - * I like seeing the level operations as macros... - */ -#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 ) - -/* - * Force a token next time around sycklex() - */ -#define FORCE_NEXT_TOKEN(tok) parser->force_token = tok; - -/* - * Nice little macro to ensure we're YAML_IOPENed to the current level. - * * Only use this macro in the "Document" section * - */ -#define ENSURE_YAML_IOPEN(last_lvl, to_len, reset) \ - if ( last_lvl->spaces < to_len ) \ - { \ - if ( last_lvl->status == syck_lvl_inline ) \ - { \ - goto Document; \ - } \ - else \ - { \ - ADD_LEVEL( to_len, syck_lvl_doc ); \ - if ( reset == 1 ) YYPOS(0); \ - return YAML_IOPEN; \ - } \ - } - -/* - * Nice little macro to ensure closure of levels. - * * Only use this macro in the "Document" section * - */ -#define ENSURE_YAML_IEND(last_lvl, to_len) \ - if ( last_lvl->spaces > to_len ) \ - { \ - syck_parser_pop_level( parser ); \ - YYPOS(0); \ - return YAML_IEND; \ - } - -/* - * Concatenates quoted string items and manages allocation - * to the quoted string - */ -#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'; \ - } - -/* - * Tags a plain scalar with a transfer method - * * Use only in "Plain" section * - */ -#define RETURN_IMPLICIT() \ - { \ - SyckNode *n = syck_alloc_str(); \ - YYCURSOR = YYTOKEN; \ - n->data.str->ptr = qstr; \ - n->data.str->len = qidx; \ - sycklval->nodeData = n; \ - if ( parser->implicit_typing == 1 ) \ - { \ - try_tag_implicit( sycklval->nodeData, parser->taguri_expansion ); \ - } \ - return YAML_PLAIN; \ - } - -/* - * Keep or chomp block? - * * Use only in "ScalarBlock" section * - */ -#define RETURN_YAML_BLOCK() \ - { \ - SyckNode *n = syck_alloc_str(); \ - n->type_id = syck_strndup( "str", 3 ); \ - n->data.str->ptr = qstr; \ - n->data.str->len = qidx; \ - 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 += 1; \ - n->data.str->len = fc - n->data.str->ptr + 1; \ - } \ - } \ - sycklval->nodeData = n; \ - return YAML_BLOCK; \ - } - -/* - * Handles newlines, calculates indent - */ -#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; \ - } - -/* - * If an indent exists at the current level, back up. - */ -#define GET_TRUE_YAML_INDENT(indt_len) \ - { \ - SyckLevel *lvl_deep = CURRENT_LEVEL(); \ - indt_len = lvl_deep->spaces; \ - if ( indt_len == YYTOKEN - YYLINEPTR ) \ - { \ - SyckLevel *lvl_over; \ - parser->lvl_idx--; \ - lvl_over = CURRENT_LEVEL(); \ - indt_len = lvl_over->spaces; \ - parser->lvl_idx++; \ - } \ - } - -/* - * Argjh! I hate globals! Here for syckerror() only! - */ -SyckParser *syck_parser_ptr = NULL; - -/* - * Accessory funcs later in this file. - */ -void eat_comments( SyckParser * ); -int is_newline( char *ptr ); -int sycklex_yaml_utf8( YYSTYPE *, SyckParser * ); -int sycklex_bytecode_utf8( YYSTYPE *, SyckParser * ); -int syckwrap(); - -/* - * My own re-entrant sycklex() using re2c. - * You really get used to the limited regexp. - * It's really nice to not rely on backtracking and such. - */ -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 ); - } -} - -/* - * Parser for standard YAML [UTF-8] - */ -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 274 - - - if ( YYLINEPTR != YYCURSOR ) - { - goto Document; - } - -Header: - - YYTOKEN = YYCURSOR; - -{ - YYCTYPE yych; - unsigned int yyaccept; - goto yy0; -yy1: ++YYCURSOR; -yy0: - if((YYLIMIT - YYCURSOR) < 5) YYFILL(5); - yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy7; - case '\n': goto yy9; - case '\r': goto yy11; - case ' ': goto yy12; - 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 333 - { YYPOS(0); - goto Document; - } -yy4: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '.': goto yy21; - default: goto yy3; - } -yy5: yych = *++YYCURSOR; -yy6: -#line 315 - { eat_comments( parser ); - goto Header; - } -yy7: yych = *++YYCURSOR; -yy8: -#line 319 - { SyckLevel *lvl = CURRENT_LEVEL(); - ENSURE_YAML_IEND(lvl, -1); - YYPOS(0); - return 0; - } -yy9: yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - goto yy18; -yy10: -#line 325 - { GOBBLE_UP_YAML_INDENT( doc_level, YYTOKEN ); - goto Header; - } -yy11: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy17; - default: goto yy3; - } -yy12: yych = *++YYCURSOR; - goto yy16; -yy13: -#line 329 - { doc_level = YYCURSOR - YYLINEPTR; - goto Header; - } -yy14: yych = *++YYCURSOR; - goto yy3; -yy15: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy16: switch(yych){ - case ' ': goto yy15; - default: goto yy13; - } -yy17: yyaccept = 1; - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy18: switch(yych){ - case '\n': case ' ': goto yy17; - case '\r': goto yy19; - default: goto yy10; - } -yy19: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch(yych){ - case '\n': 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 '\n': goto yy23; - case '\r': goto yy27; - case ' ': goto yy25; - default: goto yy20; - } -yy23: yych = *++YYCURSOR; -yy24: -#line 301 - { SyckLevel *lvl = CURRENT_LEVEL(); - if ( lvl->status == syck_lvl_header ) - { - goto Header; - } - else - { - ENSURE_YAML_IEND(lvl, -1); - YYPOS(0); - return 0; - } - return 0; - } -yy25: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy26: switch(yych){ - case ' ': goto yy25; - default: goto yy24; - } -yy27: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy23; - default: goto yy20; - } -yy28: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy29; - default: goto yy20; - } -yy29: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy30; - case '\r': goto yy34; - case ' ': goto yy32; - default: goto yy20; - } -yy30: yych = *++YYCURSOR; -yy31: -#line 287 - { SyckLevel *lvl = CURRENT_LEVEL(); - if ( lvl->status == syck_lvl_header ) - { - YYPOS(3); - goto Directive; - } - else - { - ENSURE_YAML_IEND(lvl, -1); - YYPOS(0); - return 0; - } - } -yy32: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy33: switch(yych){ - case ' ': goto yy32; - default: goto yy31; - } -yy34: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy30; - default: goto yy20; - } -} -#line 337 - - -Document: - { - SyckLevel *lvl = CURRENT_LEVEL(); - if ( lvl->status == syck_lvl_header ) - { - lvl->status = syck_lvl_doc; - } - - YYTOKEN = YYCURSOR; - -{ - YYCTYPE yych; - unsigned int yyaccept; - goto yy35; -yy36: ++YYCURSOR; -yy35: - if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); - yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy60; - case '\n': goto yy37; - case '\r': goto yy39; - case ' ': goto yy58; - case '!': goto yy49; - case '"': goto yy53; - case '#': goto yy56; - case '&': goto yy47; - case '\'': goto yy51; - case '*': goto yy48; - case ',': case ':': goto yy45; - case '-': case '?': goto yy46; - case '>': case '|': goto yy55; - case '[': case '{': goto yy41; - case ']': case '}': goto yy43; - default: goto yy62; - } -yy37: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy90; -yy38: -#line 351 - { /* Isolate spaces */ - int indt_len; - GOBBLE_UP_YAML_INDENT( indt_len, YYTOKEN ); - lvl = CURRENT_LEVEL(); - doc_level = 0; - - /* XXX: Comment lookahead */ - if ( *YYCURSOR == '#' ) - { - goto Document; - } - - /* Check for open indent */ - ENSURE_YAML_IEND(lvl, indt_len); - ENSURE_YAML_IOPEN(lvl, indt_len, 0); - if ( indt_len == -1 ) - { - return 0; - } - return YAML_INDENT; - } -yy39: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy89; - default: goto yy40; - } -yy40: -#line 445 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); - goto Plain; - } -yy41: yych = *++YYCURSOR; -yy42: -#line 373 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); - lvl = CURRENT_LEVEL(); - ADD_LEVEL(lvl->spaces + 1, syck_lvl_inline); - return YYTOKEN[0]; - } -yy43: yych = *++YYCURSOR; -yy44: -#line 379 - { POP_LEVEL(); - return YYTOKEN[0]; - } -yy45: yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy84; - case '\r': goto yy88; - case ' ': goto yy86; - default: goto yy40; - } -yy46: yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy79; - case '\r': goto yy83; - case ' ': goto yy81; - default: goto yy40; - } -yy47: 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 yy76; - default: goto yy40; - } -yy48: 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 yy73; - default: goto yy40; - } -yy49: yych = *++YYCURSOR; -yy50: -#line 418 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); - goto TransferMethod; } -yy51: yych = *++YYCURSOR; -yy52: -#line 421 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); - goto SingleQuote; } -yy53: yych = *++YYCURSOR; -yy54: -#line 424 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); - goto DoubleQuote; } -yy55: yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy68; - case '\r': goto yy72; - case ' ': goto yy70; - case '+': case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy65; - default: goto yy40; - } -yy56: yych = *++YYCURSOR; -yy57: -#line 434 - { eat_comments( parser ); - goto Document; - } -yy58: yych = *++YYCURSOR; - goto yy64; -yy59: -#line 438 - { goto Document; } -yy60: yych = *++YYCURSOR; -yy61: -#line 440 - { ENSURE_YAML_IEND(lvl, -1); - YYPOS(0); - return 0; - } -yy62: yych = *++YYCURSOR; - goto yy40; -yy63: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy64: switch(yych){ - case ' ': goto yy63; - default: goto yy59; - } -yy65: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy66: switch(yych){ - case '\n': goto yy68; - case '\r': goto yy72; - case ' ': goto yy70; - case '+': case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy65; - default: goto yy67; - } -yy67: YYCURSOR = YYMARKER; - switch(yyaccept){ - case 0: goto yy38; - case 1: goto yy40; - } -yy68: yych = *++YYCURSOR; -yy69: -#line 427 - { if ( is_newline( YYCURSOR - 1 ) ) - { - YYCURSOR--; - } - goto ScalarBlock; - } -yy70: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy71: switch(yych){ - case ' ': goto yy70; - default: goto yy69; - } -yy72: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy68; - default: goto yy67; - } -yy73: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy74: 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 yy73; - default: goto yy75; - } -yy75: -#line 413 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); - sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 ); - return YAML_ALIAS; - } -yy76: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy77: 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 yy76; - default: goto yy78; - } -yy78: -#line 401 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); - sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 ); - - /* - * Remove previous anchors of the same name. Since the parser will likely - * construct deeper nodes first, we want those nodes to be placed in the - * queue for matching at a higher level of indentation. - */ - syck_hdlr_remove_anchor(parser, sycklval->name); - return YAML_ANCHOR; - } -yy79: yych = *++YYCURSOR; -yy80: -#line 387 - { ENSURE_YAML_IOPEN(lvl, YYTOKEN - YYLINEPTR, 1); - FORCE_NEXT_TOKEN(YAML_IOPEN); - if ( is_newline( YYCURSOR ) || is_newline( YYCURSOR - 1 ) ) - { - YYCURSOR--; - ADD_LEVEL((YYTOKEN + 1) - YYLINEPTR, syck_lvl_doc); - } - else - { - ADD_LEVEL(YYCURSOR - YYLINEPTR, syck_lvl_doc); - } - return YYTOKEN[0]; - } -yy81: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy82: switch(yych){ - case ' ': goto yy81; - default: goto yy80; - } -yy83: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy79; - default: goto yy67; - } -yy84: yych = *++YYCURSOR; -yy85: -#line 383 - { YYPOS(1); - return YYTOKEN[0]; - } -yy86: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy87: switch(yych){ - case ' ': goto yy86; - default: goto yy85; - } -yy88: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy84; - default: goto yy67; - } -yy89: yyaccept = 0; - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy90: switch(yych){ - case '\n': case ' ': goto yy89; - case '\r': goto yy91; - default: goto yy38; - } -yy91: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy89; - default: goto yy67; - } -} -#line 449 - - } - -Directive: - { - YYTOKTMP = YYCURSOR; - -{ - YYCTYPE yych; - unsigned int yyaccept; - goto yy92; -yy93: ++YYCURSOR; -yy92: - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy94; - case ' ': goto yy97; - case '%': goto yy95; - default: goto yy99; - } -yy94: YYCURSOR = YYMARKER; - switch(yyaccept){ - case 0: goto yy96; - } -yy95: 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 yy102; - default: goto yy96; - } -yy96: -#line 462 - { YYCURSOR = YYTOKTMP; - return YAML_DOCSEP; - } -yy97: yych = *++YYCURSOR; - goto yy101; -yy98: -#line 460 - { goto Directive; } -yy99: yych = *++YYCURSOR; - goto yy96; -yy100: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy101: switch(yych){ - case ' ': goto yy100; - default: goto yy98; - } -yy102: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy103: 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 yy102; - case ':': goto yy104; - default: goto yy94; - } -yy104: 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 yy105; - default: goto yy94; - } -yy105: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy106: 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 yy105; - default: goto yy107; - } -yy107: -#line 458 - { goto Directive; } -} -#line 465 - - - } - -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: - -{ - YYCTYPE yych; - unsigned int yyaccept; - goto yy108; -yy109: ++YYCURSOR; -yy108: - if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); - yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy120; - case '\n': goto yy110; - case '\r': goto yy112; - case ' ': goto yy118; - case ',': goto yy117; - case ':': goto yy114; - case ']': case '}': goto yy115; - default: goto yy122; - } -yy110: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy136; -yy111: -#line 488 - { 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 ) - { - if ( is_newline( YYTOKEN++ ) ) - nl_count++; - } - 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; - } -yy112: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy135; - default: goto yy113; - } -yy113: -#line 542 - { QUOTECATS(qstr, qcapa, qidx, YYTOKEN, YYCURSOR - YYTOKEN); - goto Plain2; - } -yy114: yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy130; - case '\r': goto yy134; - case ' ': goto yy132; - default: goto yy113; - } -yy115: yych = *++YYCURSOR; -yy116: -#line 522 - { if ( plvl->status != syck_lvl_inline ) - { - if ( *(YYCURSOR - 1) == ' ' || is_newline( YYCURSOR - 1 ) ) - { - YYCURSOR--; - } - QUOTECATS(qstr, qcapa, qidx, YYTOKEN, YYCURSOR - YYTOKEN); - goto Plain2; - } - RETURN_IMPLICIT(); - } -yy117: yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy125; - case '\r': goto yy128; - case ' ': goto yy126; - default: goto yy113; - } -yy118: yych = *++YYCURSOR; - switch(yych){ - case '#': goto yy123; - default: goto yy119; - } -yy119: -#line 540 - { goto Plain3; } -yy120: yych = *++YYCURSOR; -yy121: -#line 538 - { RETURN_IMPLICIT(); } -yy122: yych = *++YYCURSOR; - goto yy113; -yy123: yych = *++YYCURSOR; -yy124: -#line 534 - { eat_comments( parser ); - RETURN_IMPLICIT(); - } -yy125: yych = *++YYCURSOR; - goto yy116; -yy126: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy127: switch(yych){ - case ' ': goto yy126; - default: goto yy116; - } -yy128: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy125; - default: goto yy129; - } -yy129: YYCURSOR = YYMARKER; - switch(yyaccept){ - case 0: goto yy111; - case 1: goto yy113; - } -yy130: yych = *++YYCURSOR; -yy131: -#line 520 - { RETURN_IMPLICIT(); } -yy132: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy133: switch(yych){ - case ' ': goto yy132; - default: goto yy131; - } -yy134: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy130; - default: goto yy129; - } -yy135: yyaccept = 0; - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy136: switch(yych){ - case '\n': case ' ': goto yy135; - case '\r': goto yy137; - default: goto yy111; - } -yy137: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy135; - default: goto yy129; - } -} -#line 546 - - } - -SingleQuote: - { - int qidx = 0; - int qcapa = 100; - char *qstr = S_ALLOC_N( char, qcapa ); - -SingleQuote2: - YYTOKEN = YYCURSOR; - -{ - YYCTYPE yych; - unsigned int yyaccept; - goto yy138; -yy139: ++YYCURSOR; -yy138: - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy146; - case '\n': goto yy140; - case '\r': goto yy142; - case '\'': goto yy144; - default: goto yy147; - } -yy140: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy151; -yy141: -#line 560 - { 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 ) - { - /* Error! */ - } - - while ( YYTOKEN < YYCURSOR ) - { - if ( is_newline( YYTOKEN++ ) ) - nl_count++; - } - 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; - } -yy142: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy150; - default: goto yy143; - } -yy143: -#line 615 - { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); - goto SingleQuote2; - } -yy144: yych = *++YYCURSOR; - switch(yych){ - case '\'': goto yy148; - default: goto yy145; - } -yy145: -#line 600 - { SyckLevel *lvl; - SyckNode *n = syck_alloc_str(); - lvl = CURRENT_LEVEL(); - - if ( lvl->status == syck_lvl_str ) - { - POP_LEVEL(); - } - n->type_id = syck_strndup( "str", 3 ); - n->data.str->ptr = qstr; - n->data.str->len = qidx; - sycklval->nodeData = n; - return YAML_PLAIN; - } -yy146: yych = *++YYCURSOR; - goto yy145; -yy147: yych = *++YYCURSOR; - goto yy143; -yy148: yych = *++YYCURSOR; -yy149: -#line 596 - { QUOTECAT(qstr, qcapa, qidx, '\''); - goto SingleQuote2; - } -yy150: yyaccept = 0; - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy151: switch(yych){ - case '\n': case ' ': goto yy150; - case '\r': goto yy152; - default: goto yy141; - } -yy152: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy150; - default: goto yy153; - } -yy153: YYCURSOR = YYMARKER; - switch(yyaccept){ - case 0: goto yy141; - } -} -#line 619 - - - } - - -DoubleQuote: - { - int keep_nl = 1; - int qidx = 0; - int qcapa = 100; - char *qstr = S_ALLOC_N( char, qcapa ); - -DoubleQuote2: - YYTOKEN = YYCURSOR; - - -{ - YYCTYPE yych; - unsigned int yyaccept; - goto yy154; -yy155: ++YYCURSOR; -yy154: - if((YYLIMIT - YYCURSOR) < 4) YYFILL(4); - yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy161; - case '\n': goto yy156; - case '\r': goto yy158; - case '"': goto yy163; - case '\\': goto yy160; - default: goto yy164; - } -yy156: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy178; -yy157: -#line 637 - { 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 ) - { - /* FIXME */ - } - - if ( keep_nl == 1 ) - { - while ( YYTOKEN < YYCURSOR ) - { - if ( is_newline( YYTOKEN++ ) ) - nl_count++; - } - 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; - } -yy158: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy177; - default: goto yy159; - } -yy159: -#line 722 - { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); - goto DoubleQuote2; - } -yy160: yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy168; - case '\r': goto yy170; - case ' ': goto yy165; - case '"': case '\\': case 'a': - case 'b': case 'e': - case 'f': case 'n': case 'r': case 't': case 'v': goto yy172; - case 'x': goto yy171; - default: goto yy159; - } -yy161: yych = *++YYCURSOR; -yy162: -#line 707 - { SyckLevel *lvl; - SyckNode *n = syck_alloc_str(); - lvl = CURRENT_LEVEL(); - - if ( lvl->status == syck_lvl_str ) - { - POP_LEVEL(); - } - n->type_id = syck_strndup( "str", 3 ); - n->data.str->ptr = qstr; - n->data.str->len = qidx; - sycklval->nodeData = n; - return YAML_PLAIN; - } -yy163: yych = *++YYCURSOR; - goto yy162; -yy164: yych = *++YYCURSOR; - goto yy159; -yy165: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy166: switch(yych){ - case '\n': goto yy168; - case '\r': goto yy170; - case ' ': goto yy165; - default: goto yy167; - } -yy167: YYCURSOR = YYMARKER; - switch(yyaccept){ - case 0: goto yy157; - case 1: goto yy159; - } -yy168: yych = *++YYCURSOR; -yy169: -#line 702 - { keep_nl = 0; - YYCURSOR--; - goto DoubleQuote2; - } -yy170: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy168; - default: goto yy167; - } -yy171: 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 yy174; - default: goto yy167; - } -yy172: yych = *++YYCURSOR; -yy173: -#line 677 - { char ch = *( YYCURSOR - 1 ); - switch ( ch ) - { - case 'a': ch = 7; break; - case 'b': ch = '\010'; break; - case 'e': ch = '\033'; break; - case 'f': ch = '\014'; break; - case 'n': ch = '\n'; break; - case 'r': ch = '\015'; break; - case 't': ch = '\t'; break; - case 'v': ch = '\013'; break; - } - QUOTECAT(qstr, qcapa, qidx, ch); - goto DoubleQuote2; - } -yy174: 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 yy175; - default: goto yy167; - } -yy175: yych = *++YYCURSOR; -yy176: -#line 693 - { 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; - } -yy177: yyaccept = 0; - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy178: switch(yych){ - case '\n': case ' ': goto yy177; - case '\r': goto yy179; - default: goto yy157; - } -yy179: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy177; - default: goto yy167; - } -} -#line 726 - - } - -TransferMethod: - { - int qidx = 0; - int qcapa = 100; - char *qstr = S_ALLOC_N( char, qcapa ); - -TransferMethod2: - YYTOKTMP = YYCURSOR; - -{ - YYCTYPE yych; - unsigned int yyaccept; - goto yy180; -yy181: ++YYCURSOR; -yy180: - if((YYLIMIT - YYCURSOR) < 4) YYFILL(4); - yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy182; - case '\n': goto yy183; - case '\r': goto yy186; - case ' ': goto yy185; - case '\\': goto yy188; - default: goto yy189; - } -yy182: YYCURSOR = YYMARKER; - switch(yyaccept){ - case 0: goto yy187; - } -yy183: yych = *++YYCURSOR; -yy184: -#line 740 - { SyckLevel *lvl; - YYCURSOR = YYTOKTMP; - if ( YYCURSOR == YYTOKEN + 1 ) - { - free( qstr ); - return YAML_ITRANSFER; - } - - lvl = CURRENT_LEVEL(); - - /* - * URL Prefixing - */ - 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; - } -yy185: yych = *++YYCURSOR; - goto yy196; -yy186: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy194; - default: goto yy187; - } -yy187: -#line 802 - { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); - goto TransferMethod2; - } -yy188: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'x': goto yy190; - default: goto yy187; - } -yy189: yych = *++YYCURSOR; - goto yy187; -yy190: 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 yy191; - default: goto yy182; - } -yy191: 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 yy192; - default: goto yy182; - } -yy192: yych = *++YYCURSOR; -yy193: -#line 793 - { 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; - } -yy194: yych = *++YYCURSOR; - goto yy184; -yy195: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy196: switch(yych){ - case ' ': goto yy195; - default: goto yy184; - } -} -#line 807 - - } - -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; - GET_TRUE_YAML_INDENT(parentIndent); - - 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 ) + parentIndent; - } - } - - qstr[0] = '\0'; - YYTOKEN = YYCURSOR; - -ScalarBlock2: - YYTOKEN = YYCURSOR; - -{ - YYCTYPE yych; - unsigned int yyaccept; - goto yy197; -yy198: ++YYCURSOR; -yy197: - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy205; - case '\n': goto yy199; - case '\r': goto yy201; - case '#': goto yy203; - default: goto yy207; - } -yy199: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy209; -yy200: -#line 854 - { 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 ( indt_len > parentIndent && lvl->status != syck_lvl_block ) - { - 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 if ( lvl->status != syck_lvl_block ) - { - YYCURSOR = YYTOKEN; - RETURN_YAML_BLOCK(); - } - - /* - * Fold only in the event of two lines being on the leftmost - * indentation. - */ - if ( blockType == BLOCK_FOLD && lastIndent == 0 && ( indt_len - lvl->spaces ) == 0 ) - { - fold_nl = 1; - } - - pacer = YYTOKEN; - while ( pacer < YYCURSOR ) - { - if ( is_newline( pacer++ ) ) - nl_count++; - } - - 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; - } -yy201: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy208; - default: goto yy202; - } -yy202: -#line 940 - { QUOTECAT(qstr, qcapa, qidx, *YYTOKEN); - goto ScalarBlock2; - } -yy203: yych = *++YYCURSOR; -yy204: -#line 921 - { lvl = CURRENT_LEVEL(); - if ( lvl->status != syck_lvl_block ) - { - eat_comments( parser ); - YYTOKEN = YYCURSOR; - } - else - { - QUOTECAT(qstr, qcapa, qidx, *YYTOKEN); - } - goto ScalarBlock2; - } -yy205: yych = *++YYCURSOR; -yy206: -#line 935 - { YYCURSOR--; - POP_LEVEL(); - RETURN_YAML_BLOCK(); - } -yy207: yych = *++YYCURSOR; - goto yy202; -yy208: yyaccept = 0; - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy209: switch(yych){ - case '\n': case ' ': goto yy208; - case '\r': goto yy210; - default: goto yy200; - } -yy210: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy208; - default: goto yy211; - } -yy211: YYCURSOR = YYMARKER; - switch(yyaccept){ - case 0: goto yy200; - } -} -#line 945 - - } - - return 0; - -} - -void -eat_comments( SyckParser *parser ) -{ -Comment: - { - YYTOKEN = YYCURSOR; - -{ - YYCTYPE yych; - unsigned int yyaccept; - goto yy212; -yy213: ++YYCURSOR; -yy212: - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy214; - case '\n': goto yy216; - case '\r': goto yy217; - default: goto yy219; - } -yy214: yych = *++YYCURSOR; -yy215: -#line 961 - { YYCURSOR = YYTOKEN; - return; - } -yy216: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy221; -yy217: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy220; - default: goto yy218; - } -yy218: -#line 965 - { goto Comment; - } -yy219: yych = *++YYCURSOR; - goto yy218; -yy220: yyaccept = 0; - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy221: switch(yych){ - case '\n': goto yy220; - case '\r': goto yy222; - default: goto yy215; - } -yy222: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy220; - default: goto yy223; - } -yy223: YYCURSOR = YYMARKER; - switch(yyaccept){ - case 0: goto yy215; - } -} -#line 968 - - - } - -} - -int -is_newline( char *ptr ) -{ - if ( *ptr == '\n' ) - return 1; - - if ( *ptr == '\r' && *( ptr + 1 ) == '\n' ) - return 1; - - 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); -} - |
