summaryrefslogtreecommitdiff
path: root/ext/syck/token.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/syck/token.c')
-rw-r--r--ext/syck/token.c2394
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);
-}
-