mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 741179662d
			
		
	
	
		741179662d
		
	
	
	
	
		
			
			scalar's parent node. [ruby-talk:150620] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			2725 lines
		
	
	
	
		
			58 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			2725 lines
		
	
	
	
		
			58 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Generated by re2c 0.9.10 on Tue Sep 20 17:46:17 2005 */
 | |
| #line 1 "token.re"
 | |
| /*
 | |
|  * token.re
 | |
|  *
 | |
|  * $Author$
 | |
|  * $Date$
 | |
|  *
 | |
|  * Copyright (C) 2003 why the lucky stiff
 | |
|  */
 | |
| #include "ruby.h"
 | |
| #include "syck.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 + newline_len(ptr); 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_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; \
 | |
|             } \
 | |
|         } 
 | |
| 
 | |
| /*
 | |
|  * 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; \
 | |
|         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; \
 | |
|     }
 | |
| 
 | |
| /* concat the inline characters to the plain scalar */
 | |
| #define PLAIN_NOT_INL() \
 | |
|     if ( *(YYCURSOR - 1) == ' ' || is_newline( YYCURSOR - 1 ) ) \
 | |
|     { \
 | |
|         YYCURSOR--; \
 | |
|     } \
 | |
|     QUOTECATS(qstr, qcapa, qidx, YYTOKEN, YYCURSOR - YYTOKEN); \
 | |
|     goto Plain2;
 | |
| 
 | |
| /* trim spaces off the end in case of indent */
 | |
| #define PLAIN_IS_INL() \
 | |
|     char *walker = qstr + qidx - 1; \
 | |
|     while ( walker > qstr && ( *walker == '\n' || *walker == ' ' || *walker == '\t' ) ) \
 | |
|     { \
 | |
|         qidx--; \
 | |
|         walker[0] = '\0'; \
 | |
|         walker--; \
 | |
|     }
 | |
| 
 | |
| /*
 | |
|  * Keep or chomp block?
 | |
|  * * Use only in "ScalarBlock" section *
 | |
|  */
 | |
| #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; \
 | |
|     }
 | |
| 
 | |
| /*
 | |
|  * 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 ( 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++; \
 | |
|         } \
 | |
|     }
 | |
| 
 | |
| /*
 | |
|  * Argjh!  I hate globals!  Here for syckerror() only!
 | |
|  */
 | |
| SyckParser *syck_parser_ptr = NULL;
 | |
| 
 | |
| /*
 | |
|  * Accessory funcs later in this file.
 | |
|  */
 | |
| 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();
 | |
| 
 | |
| /*
 | |
|  * 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 );
 | |
|     }
 | |
|     return YAML_DOCSEP;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * 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 315 "token.re"
 | |
| 
 | |
| 
 | |
|     if ( YYLINEPTR != YYCURSOR )
 | |
|     {
 | |
|         goto Document;
 | |
|     }
 | |
| 
 | |
| Header:
 | |
| 
 | |
|     YYTOKEN = YYCURSOR;
 | |
| 
 | |
| 
 | |
| #line 307 "<stdout>"
 | |
| {
 | |
| 	YYCTYPE yych;
 | |
| 	unsigned int yyaccept;
 | |
| 	goto yy0;
 | |
| 	++YYCURSOR;
 | |
| yy0:
 | |
| 	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;
 | |
| 	goto yy6;
 | |
| yy6:
 | |
| #line 356 "token.re"
 | |
| {   eat_comments( parser ); 
 | |
|                         goto Header;
 | |
|                     }
 | |
| #line 351 "<stdout>"
 | |
| yy7:	++YYCURSOR;
 | |
| 	goto yy8;
 | |
| yy8:
 | |
| #line 360 "token.re"
 | |
| {   SyckLevel *lvl = CURRENT_LEVEL();
 | |
|                         ENSURE_YAML_IEND(lvl, -1);
 | |
|                         YYPOS(0);
 | |
|                         return 0; 
 | |
|                     }
 | |
| #line 361 "<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 384 "<stdout>"
 | |
| yy14:	yych = *++YYCURSOR;
 | |
| 	goto yy3;
 | |
| yy15:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy16;
 | |
| yy16:	switch(yych){
 | |
| 	case 0x09:	case ' ':	goto yy15;
 | |
| 	default:	goto yy13;
 | |
| 	}
 | |
| yy17:	yyaccept = 1;
 | |
| 	YYMARKER = ++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy18;
 | |
| 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;
 | |
| 	goto yy24;
 | |
| 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 446 "<stdout>"
 | |
| yy25:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy26;
 | |
| yy26:	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;
 | |
| 	goto yy31;
 | |
| 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 489 "<stdout>"
 | |
| yy32:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy33;
 | |
| yy33:	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 518 "<stdout>"
 | |
| {
 | |
| 	YYCTYPE yych;
 | |
| 	unsigned int yyaccept;
 | |
| 	goto yy35;
 | |
| 	++YYCURSOR;
 | |
| yy35:
 | |
| 	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"
 | |
| {   /* 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;
 | |
|                         }
 | |
| 
 | |
|                         /* Ignore indentation inside inlines */
 | |
|                         if ( lvl->status == syck_lvl_iseq || lvl->status == syck_lvl_imap )
 | |
|                         {
 | |
|                             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;
 | |
|                     }
 | |
| #line 578 "<stdout>"
 | |
| yy39:	++YYCURSOR;
 | |
| 	switch((yych = *YYCURSOR)) {
 | |
| 	case 0x0A:	goto yy91;
 | |
| 	default:	goto yy40;
 | |
| 	}
 | |
| yy40:
 | |
| #line 497 "token.re"
 | |
| {   ENSURE_YAML_IOPEN(lvl, doc_level, 1);
 | |
|                         goto Plain; 
 | |
|                     }
 | |
| #line 589 "<stdout>"
 | |
| yy41:	++YYCURSOR;
 | |
| 	goto yy42;
 | |
| yy42:
 | |
| #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 599 "<stdout>"
 | |
| yy43:	++YYCURSOR;
 | |
| 	goto yy44;
 | |
| yy44:
 | |
| #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 609 "<stdout>"
 | |
| yy45:	++YYCURSOR;
 | |
| 	goto yy46;
 | |
| yy46:
 | |
| #line 432 "token.re"
 | |
| {   POP_LEVEL();
 | |
|                         return YYTOKEN[0]; 
 | |
|                     }
 | |
| #line 617 "<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;
 | |
| 	goto yy52;
 | |
| yy52:
 | |
| #line 471 "token.re"
 | |
| {   goto TransferMethod; }
 | |
| #line 767 "<stdout>"
 | |
| yy53:	++YYCURSOR;
 | |
| 	goto yy54;
 | |
| yy54:
 | |
| #line 473 "token.re"
 | |
| {   ENSURE_YAML_IOPEN(lvl, doc_level, 1);
 | |
|                         goto SingleQuote; }
 | |
| #line 774 "<stdout>"
 | |
| yy55:	++YYCURSOR;
 | |
| 	goto yy56;
 | |
| yy56:
 | |
| #line 476 "token.re"
 | |
| {   ENSURE_YAML_IOPEN(lvl, doc_level, 1);
 | |
|                         goto DoubleQuote; }
 | |
| #line 781 "<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;
 | |
| 	goto yy59;
 | |
| yy59:
 | |
| #line 486 "token.re"
 | |
| {   eat_comments( parser ); 
 | |
|                         goto Document;
 | |
|                     }
 | |
| #line 807 "<stdout>"
 | |
| yy60:	++YYCURSOR;
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy66;
 | |
| yy61:
 | |
| #line 490 "token.re"
 | |
| {   goto Document; }
 | |
| #line 814 "<stdout>"
 | |
| yy62:	++YYCURSOR;
 | |
| 	goto yy63;
 | |
| yy63:
 | |
| #line 492 "token.re"
 | |
| {   ENSURE_YAML_IEND(lvl, -1);
 | |
|                         YYPOS(0);
 | |
|                         return 0; 
 | |
|                     }
 | |
| #line 823 "<stdout>"
 | |
| yy64:	yych = *++YYCURSOR;
 | |
| 	goto yy40;
 | |
| yy65:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy66;
 | |
| yy66:	switch(yych){
 | |
| 	case 0x09:	case ' ':	goto yy65;
 | |
| 	default:	goto yy61;
 | |
| 	}
 | |
| yy67:	++YYCURSOR;
 | |
| 	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy68;
 | |
| yy68:	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;
 | |
| 	goto yy71;
 | |
| yy71:
 | |
| #line 479 "token.re"
 | |
| {   if ( is_newline( YYCURSOR - 1 ) ) 
 | |
|                         {
 | |
|                             YYCURSOR--;
 | |
|                         }
 | |
|                         goto ScalarBlock; 
 | |
|                     }
 | |
| #line 869 "<stdout>"
 | |
| yy72:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy73;
 | |
| yy73:	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;
 | |
| 	goto yy76;
 | |
| yy76:	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 466 "token.re"
 | |
| {   ENSURE_YAML_IOPEN(lvl, doc_level, 1);
 | |
|                         sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 );
 | |
|                         return YAML_ALIAS;
 | |
|                     }
 | |
| #line 956 "<stdout>"
 | |
| yy78:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy79;
 | |
| yy79:	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 455 "token.re"
 | |
| {   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;
 | |
|                     }
 | |
| #line 1036 "<stdout>"
 | |
| yy81:	++YYCURSOR;
 | |
| 	goto yy82;
 | |
| yy82:
 | |
| #line 441 "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 /* spaces followed by content uses the space as indentation */
 | |
|                         {
 | |
|                             ADD_LEVEL(YYCURSOR - YYLINEPTR, syck_lvl_seq);
 | |
|                         }
 | |
|                         return YYTOKEN[0]; 
 | |
|                     }
 | |
| #line 1054 "<stdout>"
 | |
| yy83:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy84;
 | |
| yy84:	switch(yych){
 | |
| 	case ' ':	goto yy83;
 | |
| 	default:	goto yy82;
 | |
| 	}
 | |
| yy85:	yych = *++YYCURSOR;
 | |
| 	switch(yych){
 | |
| 	case 0x0A:	goto yy81;
 | |
| 	default:	goto yy69;
 | |
| 	}
 | |
| yy86:	++YYCURSOR;
 | |
| 	goto yy87;
 | |
| yy87:
 | |
| #line 436 "token.re"
 | |
| {   if ( *YYTOKEN == ':' && lvl->status != syck_lvl_imap ) lvl->status = syck_lvl_map;
 | |
|                         YYPOS(1); 
 | |
|                         return YYTOKEN[0]; 
 | |
|                     }
 | |
| #line 1076 "<stdout>"
 | |
| yy88:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy89;
 | |
| yy89:	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;
 | |
| 	goto yy92;
 | |
| 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 501 "token.re"
 | |
| 
 | |
|     }
 | |
| 
 | |
| Directive:
 | |
|     {
 | |
|         YYTOKTMP = YYCURSOR;
 | |
| 
 | |
| 
 | |
| #line 1117 "<stdout>"
 | |
| {
 | |
| 	YYCTYPE yych;
 | |
| 	unsigned int yyaccept;
 | |
| 	goto yy94;
 | |
| 	++YYCURSOR;
 | |
| yy94:
 | |
| 	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 514 "token.re"
 | |
| {   YYCURSOR = YYTOKTMP;
 | |
|                         return YAML_DOCSEP;
 | |
|                     }
 | |
| #line 1221 "<stdout>"
 | |
| yy99:	++YYCURSOR;
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy103;
 | |
| yy100:
 | |
| #line 512 "token.re"
 | |
| {   goto Directive; }
 | |
| #line 1228 "<stdout>"
 | |
| yy101:	yych = *++YYCURSOR;
 | |
| 	goto yy98;
 | |
| yy102:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy103;
 | |
| yy103:	switch(yych){
 | |
| 	case 0x09:	case ' ':	goto yy102;
 | |
| 	default:	goto yy100;
 | |
| 	}
 | |
| yy104:	++YYCURSOR;
 | |
| 	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy105;
 | |
| yy105:	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;
 | |
| 	goto yy108;
 | |
| yy108:	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 510 "token.re"
 | |
| {   goto Directive; }
 | |
| #line 1484 "<stdout>"
 | |
| }
 | |
| #line 517 "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 1509 "<stdout>"
 | |
| {
 | |
| 	YYCTYPE yych;
 | |
| 	unsigned int yyaccept;
 | |
| 	goto yy110;
 | |
| 	++YYCURSOR;
 | |
| yy110:
 | |
| 	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 540 "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 1570 "<stdout>"
 | |
| yy114:	++YYCURSOR;
 | |
| 	switch((yych = *YYCURSOR)) {
 | |
| 	case 0x0A:	goto yy141;
 | |
| 	default:	goto yy115;
 | |
| 	}
 | |
| yy115:
 | |
| #line 627 "token.re"
 | |
| {   QUOTECATS(qstr, qcapa, qidx, YYTOKEN, YYCURSOR - YYTOKEN);
 | |
|                         goto Plain2;
 | |
|                     }
 | |
| #line 1581 "<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;
 | |
| 	goto yy119;
 | |
| yy119:
 | |
| #line 589 "token.re"
 | |
| {   if ( plvl->status != syck_lvl_imap )
 | |
|                         {
 | |
|                             PLAIN_NOT_INL();
 | |
|                         }
 | |
|                         else
 | |
|                         {
 | |
|                             PLAIN_IS_INL();
 | |
|                         }
 | |
|                         RETURN_IMPLICIT();
 | |
|                     }
 | |
| #line 1612 "<stdout>"
 | |
| yy120:	++YYCURSOR;
 | |
| 	goto yy121;
 | |
| yy121:
 | |
| #line 600 "token.re"
 | |
| {   if ( plvl->status != syck_lvl_iseq )
 | |
|                         {
 | |
|                             PLAIN_NOT_INL();
 | |
|                         }
 | |
|                         else
 | |
|                         {
 | |
|                             PLAIN_IS_INL();
 | |
|                         }
 | |
|                         RETURN_IMPLICIT();
 | |
|                     }
 | |
| #line 1627 "<stdout>"
 | |
| yy122:	++YYCURSOR;
 | |
| 	switch((yych = *YYCURSOR)) {
 | |
| 	case '#':	goto yy128;
 | |
| 	default:	goto yy123;
 | |
| 	}
 | |
| yy123:
 | |
| #line 617 "token.re"
 | |
| {   if ( qidx == 0 ) 
 | |
|                         {
 | |
|                             goto Plain2;
 | |
|                         }
 | |
|                         else
 | |
|                         {
 | |
|                             goto Plain3; 
 | |
|                         }
 | |
|                     }
 | |
| #line 1644 "<stdout>"
 | |
| yy124:	++YYCURSOR;
 | |
| 	goto yy125;
 | |
| yy125:
 | |
| #line 615 "token.re"
 | |
| {   RETURN_IMPLICIT(); }
 | |
| #line 1650 "<stdout>"
 | |
| yy126:	yych = *++YYCURSOR;
 | |
| 	goto yy123;
 | |
| yy127:	yych = *++YYCURSOR;
 | |
| 	goto yy115;
 | |
| yy128:	++YYCURSOR;
 | |
| 	goto yy129;
 | |
| yy129:
 | |
| #line 611 "token.re"
 | |
| {   eat_comments( parser ); 
 | |
|                         RETURN_IMPLICIT();
 | |
|                     }
 | |
| #line 1662 "<stdout>"
 | |
| yy130:	++YYCURSOR;
 | |
| 	goto yy131;
 | |
| yy131:
 | |
| #line 578 "token.re"
 | |
| {   if ( plvl->status != syck_lvl_iseq && plvl->status != syck_lvl_imap )
 | |
|                         {
 | |
|                             PLAIN_NOT_INL();
 | |
|                         }
 | |
|                         else
 | |
|                         {
 | |
|                             PLAIN_IS_INL();
 | |
|                         }
 | |
|                         RETURN_IMPLICIT();
 | |
|                     }
 | |
| #line 1677 "<stdout>"
 | |
| yy132:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy133;
 | |
| yy133:	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;
 | |
| 	goto yy137;
 | |
| yy137:
 | |
| #line 576 "token.re"
 | |
| {   RETURN_IMPLICIT(); }
 | |
| #line 1701 "<stdout>"
 | |
| yy138:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy139;
 | |
| yy139:	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;
 | |
| 	goto yy142;
 | |
| 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 631 "token.re"
 | |
| 
 | |
|     }
 | |
| 
 | |
| SingleQuote:
 | |
|     {
 | |
|         int qidx = 0;
 | |
|         int qcapa = 100;
 | |
|         char *qstr = S_ALLOC_N( char, qcapa );
 | |
| 
 | |
| SingleQuote2:
 | |
|         YYTOKEN = YYCURSOR;
 | |
| 
 | |
| 
 | |
| #line 1747 "<stdout>"
 | |
| {
 | |
| 	YYCTYPE yych;
 | |
| 	unsigned int yyaccept;
 | |
| 	goto yy144;
 | |
| 	++YYCURSOR;
 | |
| yy144:
 | |
| 	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 645 "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 )
 | |
|                         {
 | |
|                             /* Error! */
 | |
|                         }
 | |
| 
 | |
|                         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 1807 "<stdout>"
 | |
| yy148:	++YYCURSOR;
 | |
| 	switch((yych = *YYCURSOR)) {
 | |
| 	case 0x0A:	goto yy156;
 | |
| 	default:	goto yy149;
 | |
| 	}
 | |
| yy149:
 | |
| #line 712 "token.re"
 | |
| {   QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); 
 | |
|                         goto SingleQuote2; 
 | |
|                     }
 | |
| #line 1818 "<stdout>"
 | |
| yy150:	++YYCURSOR;
 | |
| 	switch((yych = *YYCURSOR)) {
 | |
| 	case '\'':	goto yy154;
 | |
| 	default:	goto yy151;
 | |
| 	}
 | |
| yy151:
 | |
| #line 689 "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 1848 "<stdout>"
 | |
| yy152:	yych = *++YYCURSOR;
 | |
| 	goto yy151;
 | |
| yy153:	yych = *++YYCURSOR;
 | |
| 	goto yy149;
 | |
| yy154:	++YYCURSOR;
 | |
| 	goto yy155;
 | |
| yy155:
 | |
| #line 685 "token.re"
 | |
| {   QUOTECAT(qstr, qcapa, qidx, '\'');
 | |
|                         goto SingleQuote2; 
 | |
|                     }
 | |
| #line 1860 "<stdout>"
 | |
| yy156:	yyaccept = 0;
 | |
| 	YYMARKER = ++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy157;
 | |
| 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 716 "token.re"
 | |
| 
 | |
| 
 | |
|     }
 | |
| 
 | |
| 
 | |
| DoubleQuote:
 | |
|     {
 | |
|         int keep_nl = 1;
 | |
|         int qidx = 0;
 | |
|         int qcapa = 100;
 | |
|         char *qstr = S_ALLOC_N( char, qcapa );
 | |
| 
 | |
| DoubleQuote2:
 | |
|         YYTOKEN = YYCURSOR;
 | |
| 
 | |
| 
 | |
| 
 | |
| #line 1901 "<stdout>"
 | |
| {
 | |
| 	YYCTYPE yych;
 | |
| 	unsigned int yyaccept;
 | |
| 	goto yy160;
 | |
| 	++YYCURSOR;
 | |
| yy160:
 | |
| 	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 734 "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 )
 | |
|                         {
 | |
|                             /* FIXME */
 | |
|                         }
 | |
| 
 | |
|                         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 1966 "<stdout>"
 | |
| yy164:	++YYCURSOR;
 | |
| 	switch((yych = *YYCURSOR)) {
 | |
| 	case 0x0A:	goto yy183;
 | |
| 	default:	goto yy165;
 | |
| 	}
 | |
| yy165:
 | |
| #line 820 "token.re"
 | |
| {   QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); 
 | |
|                         goto DoubleQuote2; 
 | |
|                     }
 | |
| #line 1977 "<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;
 | |
| 	goto yy168;
 | |
| yy168:
 | |
| #line 797 "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 2016 "<stdout>"
 | |
| yy169:	yych = *++YYCURSOR;
 | |
| 	goto yy168;
 | |
| yy170:	yych = *++YYCURSOR;
 | |
| 	goto yy165;
 | |
| yy171:	++YYCURSOR;
 | |
| 	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy172;
 | |
| yy172:	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;
 | |
| 	goto yy175;
 | |
| yy175:
 | |
| #line 792 "token.re"
 | |
| {   keep_nl = 0;
 | |
|                         YYCURSOR--;
 | |
|                         goto DoubleQuote2; 
 | |
|                     }
 | |
| #line 2044 "<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;
 | |
| 	goto yy179;
 | |
| yy179:
 | |
| #line 778 "token.re"
 | |
| {   char ch = *( YYCURSOR - 1 );
 | |
|                         QUOTECAT(qstr, qcapa, qidx, escape_seq( ch ));
 | |
|                         goto DoubleQuote2; 
 | |
|                     }
 | |
| #line 2082 "<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;
 | |
| 	goto yy182;
 | |
| yy182:
 | |
| #line 783 "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 2119 "<stdout>"
 | |
| yy183:	yyaccept = 0;
 | |
| 	YYMARKER = ++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy184;
 | |
| 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 824 "token.re"
 | |
| 
 | |
|     }
 | |
| 
 | |
| TransferMethod:
 | |
|     {
 | |
|         int qidx = 0;
 | |
|         int qcapa = 100;
 | |
|         char *qstr = S_ALLOC_N( char, qcapa );
 | |
| 
 | |
| TransferMethod2:
 | |
|         YYTOKTMP = YYCURSOR;
 | |
| 
 | |
| 
 | |
| #line 2152 "<stdout>"
 | |
| {
 | |
| 	YYCTYPE yych;
 | |
| 	unsigned int yyaccept;
 | |
| 	goto yy186;
 | |
| 	++YYCURSOR;
 | |
| yy186:
 | |
| 	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;
 | |
| 	goto yy189;
 | |
| yy189:
 | |
| #line 838 "token.re"
 | |
| {   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; 
 | |
|                     }
 | |
| #line 2222 "<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 905 "token.re"
 | |
| {   QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); 
 | |
|                         goto TransferMethod2;
 | |
|                     }
 | |
| #line 2237 "<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;
 | |
| 	goto yy199;
 | |
| yy199:
 | |
| #line 891 "token.re"
 | |
| {  char ch = *( YYCURSOR - 1 );
 | |
|                         QUOTECAT(qstr, qcapa, qidx, escape_seq( ch ));
 | |
|                         goto TransferMethod2;
 | |
|                     }
 | |
| #line 2285 "<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;
 | |
| 	goto yy202;
 | |
| yy202:
 | |
| #line 896 "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 2322 "<stdout>"
 | |
| yy203:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy204;
 | |
| yy204:	switch(yych){
 | |
| 	case ' ':	goto yy203;
 | |
| 	default:	goto yy189;
 | |
| 	}
 | |
| }
 | |
| #line 910 "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 2378 "<stdout>"
 | |
| {
 | |
| 	YYCTYPE yych;
 | |
| 	unsigned int yyaccept;
 | |
| 	goto yy205;
 | |
| 	++YYCURSOR;
 | |
| yy205:
 | |
| 	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 956 "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();
 | |
|                             }
 | |
|                         }
 | |
| 
 | |
|                         /*
 | |
|                          * 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 )
 | |
|                         {
 | |
|                             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 2474 "<stdout>"
 | |
| yy209:	++YYCURSOR;
 | |
| 	switch((yych = *YYCURSOR)) {
 | |
| 	case 0x0A:	goto yy225;
 | |
| 	default:	goto yy210;
 | |
| 	}
 | |
| yy210:
 | |
| #line 1070 "token.re"
 | |
| {   QUOTECAT(qstr, qcapa, qidx, *YYTOKEN);
 | |
|                         goto ScalarBlock2;
 | |
|                     }
 | |
| #line 2485 "<stdout>"
 | |
| yy211:	++YYCURSOR;
 | |
| 	goto yy212;
 | |
| yy212:
 | |
| #line 1032 "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 2502 "<stdout>"
 | |
| yy213:	++YYCURSOR;
 | |
| 	goto yy214;
 | |
| yy214:
 | |
| #line 1046 "token.re"
 | |
| {   YYCURSOR--;
 | |
|                         POP_LEVEL();
 | |
|                         RETURN_YAML_BLOCK(); 
 | |
|                     }
 | |
| #line 2511 "<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;
 | |
| 	goto yy221;
 | |
| yy221:
 | |
| #line 1051 "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 2559 "<stdout>"
 | |
| yy222:	++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy223;
 | |
| yy223:	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;
 | |
| 	goto yy226;
 | |
| 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 1075 "token.re"
 | |
| 
 | |
|     }
 | |
| 
 | |
|     return 0;
 | |
| 
 | |
| }
 | |
| 
 | |
| void
 | |
| eat_comments( SyckParser *parser )
 | |
| {
 | |
| Comment:
 | |
|     {
 | |
|         YYTOKEN = YYCURSOR;
 | |
| 
 | |
| 
 | |
| #line 2607 "<stdout>"
 | |
| {
 | |
| 	YYCTYPE yych;
 | |
| 	unsigned int yyaccept;
 | |
| 	goto yy228;
 | |
| 	++YYCURSOR;
 | |
| yy228:
 | |
| 	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;
 | |
| 	goto yy231;
 | |
| yy231:
 | |
| #line 1091 "token.re"
 | |
| {   YYCURSOR = YYTOKEN;
 | |
|                         return;
 | |
|                     }
 | |
| #line 2629 "<stdout>"
 | |
| yy232:	yyaccept = 0;
 | |
| 	yych = *(YYMARKER = ++YYCURSOR);
 | |
| 	goto yy237;
 | |
| yy233:	++YYCURSOR;
 | |
| 	switch((yych = *YYCURSOR)) {
 | |
| 	case 0x0A:	goto yy236;
 | |
| 	default:	goto yy234;
 | |
| 	}
 | |
| yy234:
 | |
| #line 1095 "token.re"
 | |
| {   goto Comment; 
 | |
|                     }
 | |
| #line 2642 "<stdout>"
 | |
| yy235:	yych = *++YYCURSOR;
 | |
| 	goto yy234;
 | |
| yy236:	yyaccept = 0;
 | |
| 	YYMARKER = ++YYCURSOR;
 | |
| 	if(YYLIMIT == YYCURSOR) YYFILL(1);
 | |
| 	yych = *YYCURSOR;
 | |
| 	goto yy237;
 | |
| 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 1098 "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);
 | |
| }
 | |
| 
 |