1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/syck/token.c
why e921ea2d78 * ext/syck/token.c: preserve newlines prepended to a block.
* ext/syck/implicit.c (syck_match_implicit): added !merge and !default.

* lib/yaml/constants.rb: remove '\z' escape.

* lib/yaml/emitter.rb: ensure reset of @seq_map shortcut flag.

* lib/yaml/encoding.rb: remove Unicode translation methods.

* lib/yaml/rubytypes.rb: improved round-tripping of Strings.
  [ruby-core:1134]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-10 14:15:27 +00:00

2208 lines
45 KiB
C

/* Generated by re2c 0.5 on Mon Jun 9 18:21:18 2003 */
#line 1 "token.re"
/*
* token.re
*
* $Author$
* $Date$
*
* Copyright (C) 2003 why the lucky stiff
*/
#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 + 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 yylex()
*/
#define FORCE_NEXT_TOKEN(tok) parser->force_token = tok;
/*
* Nice little macro to ensure we're IOPENed to the current level.
* * Only use this macro in the "Document" section *
*/
#define ENSURE_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 IOPEN; \
} \
}
/*
* Nice little macro to ensure closure of levels.
* * Only use this macro in the "Document" section *
*/
#define ENSURE_IEND(last_lvl, to_len) \
if ( last_lvl->spaces > to_len ) \
{ \
syck_parser_pop_level( parser ); \
YYPOS(0); \
return 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() \
{ \
SyckLevel *i_lvl = CURRENT_LEVEL(); \
SyckNode *n = syck_alloc_str(); \
YYCURSOR = YYTOKTMP; \
n->data.str->ptr = qstr; \
n->data.str->len = qidx; \
yylval->nodeData = n; \
if ( parser->implicit_typing == 1 ) \
{ \
try_tag_implicit( yylval->nodeData, parser->taguri_expansion ); \
} \
return PLAIN; \
}
/*
* Keep or chomp block?
* * Use only in "ScalarBlock" section *
*/
#define RETURN_BLOCK() \
{ \
SyckNode *n = syck_alloc_str(); \
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; \
} \
} \
yylval->nodeData = n; \
return BLOCK; \
}
/*
* Handles newlines, calculates indent
*/
#define GOBBLE_UP_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_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 yyerror() only!
*/
SyckParser *syck_parser_ptr = NULL;
/*
* Accessory funcs later in this file.
*/
void eat_comments( SyckParser * );
/*
* My own re-entrant yylex() using re2c.
* You really get used to the limited regexp.
* It's really nice to not rely on backtracking and such.
*/
int
yylex( YYSTYPE *yylval, SyckParser *parser )
{
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 245
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 yy6;
case '\n': goto yy8;
case '\r': goto yy10;
case '#': goto yy4;
case '-': goto yy2;
default: goto yy11;
}
yy2: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '-': goto yy16;
default: goto yy3;
}
yy3:
#line 287
{ YYPOS(0);
goto Document;
}
yy4: yych = *++YYCURSOR;
yy5:
#line 272
{ eat_comments( parser );
goto Header;
}
yy6: yych = *++YYCURSOR;
yy7:
#line 276
{ SyckLevel *lvl = CURRENT_LEVEL();
ENSURE_IEND(lvl, -1);
YYPOS(0);
return 0;
}
yy8: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
goto yy13;
yy9:
#line 282
{ int indt_len;
GOBBLE_UP_INDENT( indt_len, YYTOKEN );
goto Header;
}
yy10: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy12;
default: goto yy3;
}
yy11: yych = *++YYCURSOR;
goto yy3;
yy12: yyaccept = 1;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy13: switch(yych){
case '\n': case ' ': goto yy12;
case '\r': goto yy14;
default: goto yy9;
}
yy14: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case '\n': goto yy12;
default: goto yy15;
}
yy15: YYCURSOR = YYMARKER;
switch(yyaccept){
case 1: goto yy9;
case 0: goto yy3;
}
yy16: yych = *++YYCURSOR;
switch(yych){
case '-': goto yy17;
default: goto yy15;
}
yy17: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy18;
case '\r': goto yy22;
case ' ': goto yy20;
default: goto yy15;
}
yy18: yych = *++YYCURSOR;
yy19:
#line 258
{ SyckLevel *lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_header )
{
YYPOS(3);
goto Directive;
}
else
{
ENSURE_IEND(lvl, -1);
YYPOS(0);
return 0;
}
}
yy20: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy21: switch(yych){
case ' ': goto yy20;
default: goto yy19;
}
yy22: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy18;
default: goto yy15;
}
}
#line 291
Document:
{
SyckLevel *lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_header )
{
lvl->status = syck_lvl_doc;
}
YYTOKEN = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
goto yy23;
yy24: ++YYCURSOR;
yy23:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
switch(yych){
case '\000': goto yy48;
case '\n': goto yy25;
case '\r': goto yy27;
case ' ': goto yy46;
case '!': goto yy37;
case '"': goto yy41;
case '#': goto yy44;
case '&': goto yy35;
case '\'': goto yy39;
case '*': goto yy36;
case ',': case ':': goto yy33;
case '-': case '?': goto yy34;
case '>': case '|': goto yy43;
case '[': case '{': goto yy29;
case ']': case '}': goto yy31;
default: goto yy50;
}
yy25: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy78;
yy26:
#line 305
{ // Isolate spaces
int indt_len;
GOBBLE_UP_INDENT( indt_len, YYTOKEN );
lvl = CURRENT_LEVEL();
// Check for open indent
ENSURE_IEND(lvl, indt_len);
ENSURE_IOPEN(lvl, indt_len, 0);
if ( indt_len == -1 )
{
return 0;
}
return INDENT;
}
yy27: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy77;
default: goto yy28;
}
yy28:
#line 385
{ ENSURE_IOPEN(lvl, 0, 1);
goto Plain;
}
yy29: yych = *++YYCURSOR;
yy30:
#line 320
{ ENSURE_IOPEN(lvl, 0, 1);
lvl = CURRENT_LEVEL();
ADD_LEVEL(lvl->spaces + 1, syck_lvl_inline);
return YYTOKEN[0];
}
yy31: yych = *++YYCURSOR;
yy32:
#line 326
{ POP_LEVEL();
return YYTOKEN[0];
}
yy33: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '\n': goto yy72;
case '\r': goto yy76;
case ' ': goto yy74;
default: goto yy28;
}
yy34: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '\n': goto yy67;
case '\r': goto yy71;
case ' ': goto yy69;
default: goto yy28;
}
yy35: 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 yy64;
default: goto yy28;
}
yy36: 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 yy61;
default: goto yy28;
}
yy37: yych = *++YYCURSOR;
yy38:
#line 358
{ ENSURE_IOPEN(lvl, 0, 1);
goto TransferMethod; }
yy39: yych = *++YYCURSOR;
yy40:
#line 361
{ ENSURE_IOPEN(lvl, 0, 1);
goto SingleQuote; }
yy41: yych = *++YYCURSOR;
yy42:
#line 364
{ ENSURE_IOPEN(lvl, 0, 1);
goto DoubleQuote; }
yy43: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '\n': goto yy56;
case '\r': goto yy60;
case ' ': goto yy58;
case '+': case '-': case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': goto yy53;
default: goto yy28;
}
yy44: yych = *++YYCURSOR;
yy45:
#line 374
{ eat_comments( parser );
goto Document;
}
yy46: yych = *++YYCURSOR;
goto yy52;
yy47:
#line 378
{ goto Document; }
yy48: yych = *++YYCURSOR;
yy49:
#line 380
{ ENSURE_IEND(lvl, -1);
YYPOS(0);
return 0;
}
yy50: yych = *++YYCURSOR;
goto yy28;
yy51: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy52: switch(yych){
case ' ': goto yy51;
default: goto yy47;
}
yy53: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy54: switch(yych){
case '\n': goto yy56;
case '\r': goto yy60;
case ' ': goto yy58;
case '+': case '-': case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': goto yy53;
default: goto yy55;
}
yy55: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy26;
case 1: goto yy28;
}
yy56: yych = *++YYCURSOR;
yy57:
#line 367
{ if ( is_newline( YYCURSOR - 1 ) )
{
YYCURSOR--;
}
goto ScalarBlock;
}
yy58: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy59: switch(yych){
case ' ': goto yy58;
default: goto yy57;
}
yy60: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy56;
default: goto yy55;
}
yy61: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy62: 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 yy61;
default: goto yy63;
}
yy63:
#line 353
{ ENSURE_IOPEN(lvl, 0, 1);
yylval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 );
return ALIAS;
}
yy64: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy65: 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 yy64;
default: goto yy66;
}
yy66:
#line 348
{ ENSURE_IOPEN(lvl, 0, 1);
yylval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 );
return ANCHOR;
}
yy67: yych = *++YYCURSOR;
yy68:
#line 334
{ ENSURE_IOPEN(lvl, YYTOKEN - YYLINEPTR, 1);
FORCE_NEXT_TOKEN(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];
}
yy69: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy70: switch(yych){
case ' ': goto yy69;
default: goto yy68;
}
yy71: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy67;
default: goto yy55;
}
yy72: yych = *++YYCURSOR;
yy73:
#line 330
{ YYPOS(1);
return YYTOKEN[0];
}
yy74: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy75: switch(yych){
case ' ': goto yy74;
default: goto yy73;
}
yy76: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy72;
default: goto yy55;
}
yy77: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy78: switch(yych){
case '\n': case ' ': goto yy77;
case '\r': goto yy79;
default: goto yy26;
}
yy79: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case '\n': goto yy77;
default: goto yy55;
}
}
#line 389
}
Directive:
{
YYTOKTMP = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
goto yy80;
yy81: ++YYCURSOR;
yy80:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
case '\000': goto yy82;
case ' ': goto yy85;
case '%': goto yy83;
default: goto yy87;
}
yy82: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy84;
}
yy83: 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 yy90;
default: goto yy84;
}
yy84:
#line 402
{ YYCURSOR = YYTOKTMP;
return DOCSEP;
}
yy85: yych = *++YYCURSOR;
goto yy89;
yy86:
#line 400
{ goto Directive; }
yy87: yych = *++YYCURSOR;
goto yy84;
yy88: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy89: switch(yych){
case ' ': goto yy88;
default: goto yy86;
}
yy90: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy91: 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 yy90;
case ':': goto yy92;
default: goto yy82;
}
yy92: 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 yy93;
default: goto yy82;
}
yy93: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy94: 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 yy93;
default: goto yy95;
}
yy95:
#line 398
{ goto Directive; }
}
#line 405
}
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_INDENT(parentIndent);
Plain2:
YYTOKTMP = YYCURSOR;
Plain3:
{
YYCTYPE yych;
unsigned int yyaccept;
goto yy96;
yy97: ++YYCURSOR;
yy96:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
switch(yych){
case '\000': goto yy108;
case '\n': goto yy98;
case '\r': goto yy100;
case ' ': goto yy106;
case ',': goto yy105;
case ':': goto yy102;
case ']': case '}': goto yy103;
default: goto yy110;
}
yy98: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy124;
yy99:
#line 428
{ int indt_len, nl_count = 0;
SyckLevel *lvl;
char *tok = YYTOKTMP;
GOBBLE_UP_INDENT( indt_len, tok );
lvl = CURRENT_LEVEL();
if ( indt_len <= parentIndent )
{
RETURN_IMPLICIT();
}
while ( YYTOKTMP < YYCURSOR )
{
if ( is_newline( YYTOKTMP++ ) )
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;
}
yy100: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy123;
default: goto yy101;
}
yy101:
#line 482
{ QUOTECATS(qstr, qcapa, qidx, YYTOKTMP, YYCURSOR - YYTOKTMP);
goto Plain2;
}
yy102: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '\n': goto yy118;
case '\r': goto yy122;
case ' ': goto yy120;
default: goto yy101;
}
yy103: yych = *++YYCURSOR;
yy104:
#line 462
{ if ( plvl->status != syck_lvl_inline )
{
if ( *(YYCURSOR - 1) == ' ' || is_newline( YYCURSOR - 1 ) )
{
YYCURSOR--;
}
QUOTECATS(qstr, qcapa, qidx, YYTOKTMP, YYCURSOR - YYTOKTMP);
goto Plain2;
}
RETURN_IMPLICIT();
}
yy105: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '\n': goto yy113;
case '\r': goto yy116;
case ' ': goto yy114;
default: goto yy101;
}
yy106: yych = *++YYCURSOR;
switch(yych){
case '#': goto yy111;
default: goto yy107;
}
yy107:
#line 480
{ goto Plain3; }
yy108: yych = *++YYCURSOR;
yy109:
#line 478
{ RETURN_IMPLICIT(); }
yy110: yych = *++YYCURSOR;
goto yy101;
yy111: yych = *++YYCURSOR;
yy112:
#line 474
{ eat_comments( parser );
RETURN_IMPLICIT();
}
yy113: yych = *++YYCURSOR;
goto yy104;
yy114: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy115: switch(yych){
case ' ': goto yy114;
default: goto yy104;
}
yy116: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy113;
default: goto yy117;
}
yy117: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy99;
case 1: goto yy101;
}
yy118: yych = *++YYCURSOR;
yy119:
#line 460
{ RETURN_IMPLICIT(); }
yy120: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy121: switch(yych){
case ' ': goto yy120;
default: goto yy119;
}
yy122: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy118;
default: goto yy117;
}
yy123: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy124: switch(yych){
case '\n': case ' ': goto yy123;
case '\r': goto yy125;
default: goto yy99;
}
yy125: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case '\n': goto yy123;
default: goto yy117;
}
}
#line 486
}
SingleQuote:
{
int qidx = 0;
int qcapa = 100;
char *qstr = S_ALLOC_N( char, qcapa );
SingleQuote2:
YYTOKTMP = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
goto yy126;
yy127: ++YYCURSOR;
yy126:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
case '\000': goto yy134;
case '\n': goto yy128;
case '\r': goto yy130;
case '\'': goto yy132;
default: goto yy135;
}
yy128: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy139;
yy129:
#line 500
{ int indt_len;
int nl_count = 0;
SyckLevel *lvl;
GOBBLE_UP_INDENT( indt_len, YYTOKTMP );
lvl = CURRENT_LEVEL();
if ( lvl->status != syck_lvl_str )
{
ADD_LEVEL( indt_len, syck_lvl_str );
}
else if ( indt_len < lvl->spaces )
{
// Error!
}
while ( YYTOKTMP < YYCURSOR )
{
if ( is_newline( YYTOKTMP++ ) )
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;
}
yy130: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy138;
default: goto yy131;
}
yy131:
#line 554
{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1));
goto SingleQuote2;
}
yy132: yych = *++YYCURSOR;
switch(yych){
case '\'': goto yy136;
default: goto yy133;
}
yy133:
#line 540
{ SyckLevel *lvl;
SyckNode *n = syck_alloc_str();
lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_str )
{
POP_LEVEL();
}
n->data.str->ptr = qstr;
n->data.str->len = qidx;
yylval->nodeData = n;
return PLAIN;
}
yy134: yych = *++YYCURSOR;
goto yy133;
yy135: yych = *++YYCURSOR;
goto yy131;
yy136: yych = *++YYCURSOR;
yy137:
#line 536
{ QUOTECAT(qstr, qcapa, qidx, '\'');
goto SingleQuote2;
}
yy138: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy139: switch(yych){
case '\n': case ' ': goto yy138;
case '\r': goto yy140;
default: goto yy129;
}
yy140: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case '\n': goto yy138;
default: goto yy141;
}
yy141: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy129;
}
}
#line 558
}
DoubleQuote:
{
int keep_nl = 1;
int qidx = 0;
int qcapa = 100;
char *qstr = S_ALLOC_N( char, qcapa );
DoubleQuote2:
YYTOKTMP = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
goto yy142;
yy143: ++YYCURSOR;
yy142:
if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
yych = *YYCURSOR;
switch(yych){
case '\000': goto yy149;
case '\n': goto yy144;
case '\r': goto yy146;
case '"': goto yy151;
case '\\': goto yy148;
default: goto yy152;
}
yy144: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy166;
yy145:
#line 576
{ int indt_len;
int nl_count = 0;
SyckLevel *lvl;
GOBBLE_UP_INDENT( indt_len, YYTOKTMP );
lvl = CURRENT_LEVEL();
if ( lvl->status != syck_lvl_str )
{
ADD_LEVEL( indt_len, syck_lvl_str );
}
else if ( indt_len < lvl->spaces )
{
// Error!
}
if ( keep_nl == 1 )
{
while ( YYTOKTMP < YYCURSOR )
{
if ( is_newline( YYTOKTMP++ ) )
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;
}
yy146: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy165;
default: goto yy147;
}
yy147:
#line 660
{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1));
goto DoubleQuote2;
}
yy148: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
switch(yych){
case '\n': goto yy156;
case '\r': goto yy158;
case ' ': goto yy153;
case '"': case '\\': case 'a':
case 'b': case 'e':
case 'f': case 'n': case 'r': case 't': case 'v': goto yy160;
case 'x': goto yy159;
default: goto yy147;
}
yy149: yych = *++YYCURSOR;
yy150:
#line 646
{ SyckLevel *lvl;
SyckNode *n = syck_alloc_str();
lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_str )
{
POP_LEVEL();
}
n->data.str->ptr = qstr;
n->data.str->len = qidx;
yylval->nodeData = n;
return PLAIN;
}
yy151: yych = *++YYCURSOR;
goto yy150;
yy152: yych = *++YYCURSOR;
goto yy147;
yy153: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy154: switch(yych){
case '\n': goto yy156;
case '\r': goto yy158;
case ' ': goto yy153;
default: goto yy155;
}
yy155: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy145;
case 1: goto yy147;
}
yy156: yych = *++YYCURSOR;
yy157:
#line 641
{ keep_nl = 0;
YYCURSOR--;
goto DoubleQuote2;
}
yy158: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy156;
default: goto yy155;
}
yy159: 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 yy162;
default: goto yy155;
}
yy160: yych = *++YYCURSOR;
yy161:
#line 616
{ 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;
}
yy162: 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 yy163;
default: goto yy155;
}
yy163: yych = *++YYCURSOR;
yy164:
#line 632
{ 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 DoubleQuote2;
}
yy165: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy166: switch(yych){
case '\n': case ' ': goto yy165;
case '\r': goto yy167;
default: goto yy145;
}
yy167: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case '\n': goto yy165;
default: goto yy155;
}
}
#line 664
}
TransferMethod:
{
YYTOKTMP = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
goto yy168;
yy169: ++YYCURSOR;
yy168:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
case '\000': goto yy170;
case '\n': goto yy171;
case '\r': goto yy174;
case ' ': goto yy173;
default: goto yy176;
}
yy170:yy171: yych = *++YYCURSOR;
yy172:
#line 673
{ SyckLevel *lvl;
YYCURSOR = YYTOKTMP;
if ( YYCURSOR == YYTOKEN + 1 )
{
return ITRANSFER;
}
lvl = CURRENT_LEVEL();
//
// URL Prefixing
//
if ( *(YYTOKEN + 1) == '^' )
{
yylval->name = S_ALLOC_N( char, ( YYCURSOR - YYTOKEN ) + strlen( lvl->domain ) );
yylval->name[0] = '\0';
strcat( yylval->name, lvl->domain );
strncat( yylval->name, YYTOKEN + 2, ( YYCURSOR - YYTOKEN ) - 2 );
}
else
{
char *carat = YYTOKEN;
while ( (++carat) < YYCURSOR )
{
if ( *carat == '^' )
break;
}
if ( carat < YYCURSOR )
{
free( lvl->domain );
lvl->domain = syck_strndup( YYTOKEN + 1, ( carat - YYTOKEN ) - 1 );
yylval->name = S_ALLOC_N( char, ( YYCURSOR - carat ) + strlen( lvl->domain ) );
yylval->name[0] = '\0';
strcat( yylval->name, lvl->domain );
strncat( yylval->name, carat + 1, ( YYCURSOR - carat ) - 1 );
}
else
{
yylval->name = syck_strndup( YYTOKEN + 1, ( YYCURSOR - YYTOKEN ) - 1 );
}
}
return TRANSFER;
}
yy173: yych = *++YYCURSOR;
goto yy179;
yy174: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy177;
default: goto yy175;
}
yy175:
#line 719
{ goto TransferMethod; }
yy176: yych = *++YYCURSOR;
goto yy175;
yy177: yych = *++YYCURSOR;
goto yy172;
yy178: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy179: switch(yych){
case ' ': goto yy178;
default: goto yy172;
}
}
#line 721
}
ScalarBlock:
{
int keep_nl = 1;
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_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:
YYTOKTMP = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
goto yy180;
yy181: ++YYCURSOR;
yy180:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
case '\000': goto yy188;
case '\n': goto yy182;
case '\r': goto yy184;
case '#': goto yy186;
default: goto yy190;
}
yy182: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy192;
yy183:
#line 769
{ char *pacer;
char *tok = YYTOKTMP;
int indt_len = 0, nl_count = 0, fold_nl = 0, nl_begin = 0;
GOBBLE_UP_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 = YYTOKTMP;
RETURN_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 = YYTOKTMP;
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 = YYTOKTMP;
RETURN_BLOCK();
}
goto ScalarBlock2;
}
yy184: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy191;
default: goto yy185;
}
yy185:
#line 855
{ QUOTECAT(qstr, qcapa, qidx, *YYTOKTMP);
goto ScalarBlock2;
}
yy186: yych = *++YYCURSOR;
yy187:
#line 836
{ lvl = CURRENT_LEVEL();
if ( lvl->status != syck_lvl_block )
{
eat_comments( parser );
YYTOKTMP = YYCURSOR;
}
else
{
QUOTECAT(qstr, qcapa, qidx, *YYTOKTMP);
}
goto ScalarBlock2;
}
yy188: yych = *++YYCURSOR;
yy189:
#line 850
{ YYCURSOR--;
POP_LEVEL();
RETURN_BLOCK();
}
yy190: yych = *++YYCURSOR;
goto yy185;
yy191: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy192: switch(yych){
case '\n': case ' ': goto yy191;
case '\r': goto yy193;
default: goto yy183;
}
yy193: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case '\n': goto yy191;
default: goto yy194;
}
yy194: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy183;
}
}
#line 860
}
}
void
eat_comments( SyckParser *parser )
{
char *tok;
Comment:
{
tok = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
goto yy195;
yy196: ++YYCURSOR;
yy195:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
case '\000': goto yy197;
case '\n': goto yy199;
case '\r': goto yy200;
default: goto yy202;
}
yy197: yych = *++YYCURSOR;
yy198:
#line 876
{ SyckLevel *lvl = CURRENT_LEVEL();
YYCURSOR = tok;
return;
}
yy199: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy204;
yy200: yych = *++YYCURSOR;
switch(yych){
case '\n': goto yy203;
default: goto yy201;
}
yy201:
#line 881
{ goto Comment;
}
yy202: yych = *++YYCURSOR;
goto yy201;
yy203: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy204: switch(yych){
case '\n': goto yy203;
case '\r': goto yy205;
default: goto yy198;
}
yy205: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
case '\n': goto yy203;
default: goto yy206;
}
yy206: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy198;
}
}
#line 884
}
}
int
is_newline( char *ptr )
{
if ( *ptr == '\n' )
return 1;
if ( *ptr == '\r' && *( ptr + 1 ) == '\n' )
return 1;
return 0;
}
int
yywrap()
{
return 1;
}
void
yyerror( 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);
}