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

1904 lines
46 KiB
C
Raw Normal View History

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